c++怎么定义结构体?struct和class到底有什么区别?

来源:语言推理作者:香港程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《c++怎么定义结构体?struct和class到底有什么区别?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《c++怎么定义结构体?struct和class到底有什么区别?》有用,将其分享出去将是对创作者最好的鼓励。

在c++中,结构体使用struct关键字定义,它不仅可以包含成员变量,还能定义成员函数、构造函数以及设置访问权限。理解struct的写法和它与class的区别,对写出清晰的c++代码很有帮助。

c++怎么定义结构体?struct和class到底有什么区别?

c++中如何定义结构体

使用struct关键字即可定义一个结构体类型,成员默认是public,可以在结构体中写函数。

#include <iostream>
#include <string>

struct Student {
    std::string name;  // 姓名,默认public
    int age;           // 年龄,默认public

    // 结构体中的成员函数
    void show() {
        std::cout << name << " is " << age << " years old" << std::endl;
    }
};

int main() {
    Student s;
    s.name = "Tom";
    s.age = 18;
    s.show();
    return 0;
}

struct与class的主要区别

在c++里,struct和class几乎是一回事,唯一语言和语义上的默认差异集中在访问控制和继承方式上。

1. 默认访问权限不同

struct的成员默认是public,class的成员默认是private。

struct A {
    int x;  // 默认public
};

class B {
    int x;  // 默认private
};

2. 默认继承方式不同

struct默认公有继承,class默认私有继承。

struct Base {};
struct D1 : Base {};   // 公有继承
class  D2 : Base {};   // 私有继承

3. 使用习惯上的区别

虽然语法上struct能做class能做的一切,但一般习惯用struct表示纯数据类型,用class表示需要封装行为的对象。

对比总结

对比项structclass
默认成员访问publicprivate
默认继承方式publicprivate
常见用途数据聚合封装对象

小结

定义c++结构体很简单,用struct加变量和函数即可。struct和class核心区别只是默认public和private,以及继承默认方式不同。写代码时按语义选择,能让项目更好维护。

c++structclass修改时间:2026-07-27 10:24:15

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。