c++ 中struct和class

在c++ 中,struct 和class 之间的区别在于他们的默认访问权限继承类型

1.默认访问权限

  • struct中默认的访问权限是public , 如果不明确指定访问修饰符(public , protected private) , 那么结构体的成员在外部都是可以访问的
  • 在class 中默认的访问权限是 private , 如果不明确指定访问修饰符,那么在类的 成员外部是不可以访问的,只能通过类的公共接口或者方法进行访问

2.默认继承

  • 当使用struct 继承另外一个struct 或者class 时, 默认的继承类型时public
  • 当使用class 继承另外一个struct 或者class 时, 默认的继承类型时private

在实践中,struct经常用于简单的数据结构和数据传输对象,而class用于定义更复杂的对象。

3.构造函数和析构函数

在C++中,构造函数和析构函数是类或结构体的特殊成员函数,它们在对象的生命周期中起着关键的作用。不论是在class还是struct中,它们的作用和定义方式是相同的。

3.1 构造函数(Constructor)

  1. 目的:构造函数用于初始化对象的状态。当你创建一个类或结构体的实例时,构造函数会被自动调用。
  2. 特性:
    构造函数的名称与类或结构体的名称相同。
    它们可以被重载,这意味着你可以有多个构造函数,只要它们的参数列表不同。
    它们没有返回类型,也不返回值。
    可以有默认构造函数(无参数),拷贝构造函数(接受同类型对象的引用作为参数),移动构造函数(接受同类型对象的右值引用作为参数)等。

3.2 析构函数(Destructor)

  1. 目的:析构函数用于清理对象占用的资源。当对象的生命周期结束时,析构函数会被自动调用。
  2. 特性:
    析构函数的名称是类或结构体的名称前加上波浪符(~)。
    它们不能被重载,一个类或结构体只能有一个析构函数。
    它们没有参数,也没有返回类型。
    析构函数在对象被销毁时执行,例如,当对象的作用域结束时,或者你对动态分配的对象使用delete时。
相关推荐
RuoZoe4 小时前
从 2026 年 3 月 1 日开源,到 26.10.9:Jalium UI 半年时间到底走了多远?
c语言·c++
鱼子星_6 小时前
【C++】继承和多态(上)
c++·笔记
郝学胜-神的一滴7 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
码匠许师傅7 小时前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式
爱吃巧克力的程序媛10 小时前
main.cpp注册 C++ 类到 QML 元对象系统
c++·qt
YYYing.10 小时前
【C++进阶系列 (二)】关于线程堆栈的那些事——函数调用过程
开发语言·c++·函数·线程堆栈
键盘会跳舞11 小时前
【C++多线程】死锁诊断工具实战:从 Windows 到 Linux 的全链路排查
linux·c++·windows·死锁
HugoStudio_SWAN12 小时前
洛谷 P10719 \[GESP202406 五级] 黑白格——暴力美学与图像处理的最小外接矩形
c++·图像处理·人工智能·学习·程序人生·算法·目标跟踪
jimy112 小时前
C++ 的 “移动语义”——Move Semantics
开发语言·c++
励志不掉头发的内向程序员14 小时前
【LibreCAD 2D架构】从鼠标点击到图形创建:RS_ActionDrawLine交互流程与状态机解析
开发语言·c++·qt·学习·系统架构·计算机外设·交互