C++ 类和对象(下)核心总结

张开发
2026/5/16 4:48:35 15 分钟阅读
C++ 类和对象(下)核心总结
C 类和对象下核心总结这一篇是类和对象收尾篇全是面试高频、工程实用点我给你整理成最精简、最好记的版本直接背会就能通关。文章目录C 类和对象下核心总结一、初始化列表构造函数进阶二、隐式类型转换 explicit三、static 静态成员超级高频静态成员变量静态成员函数经典用法四、友元friend五、内部类六、匿名对象七、编译器拷贝优化重点全篇最核心 7 句话一、初始化列表构造函数进阶本质成员变量真正定义并初始化的地方比函数体内赋值更早。写法构造函数后加:逗号分隔成员(值)。必须用初始化列表的3种成员引用成员int _refconst成员const int _n无默认构造的自定义类型初始化顺序按类中声明顺序初始化和列表写的顺序无关。C11 缺省值声明时直接赋值是给初始化列表用的不是初始化。二、隐式类型转换 explicit单参数构造函数支持内置类型 → 隐式转成类对象A aa1;// 隐式转换构造临时对象 拷贝构造 → 优化为直接构造C11 多参数也支持A aa{1,2};explicit禁止隐式类型转换加在构造前即可。三、static 静态成员超级高频静态成员变量所有对象共享存静态区不占对象空间类内声明类外初始化不带static不能用构造初始化列表静态成员函数没有this 指针只能访问静态成员不能访问非静态访问方式类名::或对象.经典用法统计对象创建个数全局唯一配置/计数四、友元friend作用突破访问限定访问私有成员友元函数不是类成员可访问私有友元类单向、不传递、不交换A是B友元 ≠ B是A友元A友元B、B友元C ≠ A友元C缺点破坏封装增加耦合少用。五、内部类定义在类内部的类是独立类不占外部对象空间受外部类类域 访问限定符限制内部类默认是外部类的友元适合紧密关联、专属使用的小类六、匿名对象写法类型(参数)没有名字生命周期只在当前一行用法临时用一次、链式调用Solution().Sum_Solution(10);七、编译器拷贝优化重点同一表达式内连续拷贝编译器会合并优化减少拷贝常见优化构造 拷贝构造 → 直接构造传值返回 接收 → 直接构造到目标对象Linux 关闭优化g -fno-elide-constructors全篇最核心 7 句话初始化列表是成员真正初始化的地方引用/const/无默认构造必须用。初始化顺序按声明顺序不是列表顺序。explicit禁止隐式类型转换。static成员共享、类外初始化、静态函数无this。友元破封装、单向不传递少用。内部类独立、不占空间、默认是外部类友元。匿名对象只活一行编译器会疯狂优化拷贝。

更多文章