cpp笔记-24-05-10

1、public ------ 外部也能访问

2、private ------ 只能内部(友元也可以)

3、explicit ------ 只可用于声明単参构造函数。声明类的构造函数是显示调用,不是隐式。阻止调用构造函数时隐式转换(赋值初始化)

4、默认构造函数 ------ 不提供参数调用的构造函数。构造函数一般不定义成虚函数。

默认构造函数时调用时不提供参数的构造函数(发生在调用时),而并不一定是不接受任何参数的构造函数

cpp 复制代码
class Human {
private:
    string name;
    int age;
public:
    Human(string humansName = "Adam", int humanAge = 18) {
        name = humansName;
        age = humanAge;
    }
};

Human adam;

可以使用关键字constexpr将构造函数定义为常量表达式。在有助于提高性能。

cpp 复制代码
constexpr Human() {

}

5、抽象类必须有一个纯虚函数。抽象类中的纯虚函数必须能被覆盖(也就是不能和final一起用)

6、为了防止内存泄露,一般将析构函数定义为虚函数。

~ 腭化符号

析构函数不能重载,,每个类只有一个析构函数。

7、要避免拷贝构造函数无限制的递归 ------ 栈溢出

8、带有指针的类,建议都要自己写包含深复制的复制构造函数。输如:const 的引用。

如果不是引用,就会无限递归构造,见第七条。

肩并肩的还要再定义一个"复制赋值运算符 opertor=",编译器提供的也是浅复制。

9、移动构造函数,改善性能

&&

std::move()

肩并肩的还要再定义一个移动赋值运算符

相关推荐
QiLinkOS7 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
Irissgwe7 小时前
c++11(lambda表达式与包装器、线程库)
c++·c++11·lambda表达式·线程库·包装器·互斥量库·条件变量库
Peter·Pan爱编程8 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
不想写代码的星星8 小时前
从分支预测角度看 C++:为什么你的热循环慢得离谱?
c++
郝学胜-神的一滴9 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面
郝亚军9 小时前
IEEE 754 单精度浮点的SEM表示
开发语言·c++·算法
Yyyyyy~10 小时前
【C++】数组篇
开发语言·c++
qq_3331209710 小时前
C++高并发内存池的整体设计和实现思路_C 语言
java·c语言·c++
牛肉在哪里10 小时前
ros2 从零开始27 编写广播C++
开发语言·c++·机器人
Curvatureflight10 小时前
前端国际化 i18n 落地实践:语言包、动态文案和格式化问题怎么处理?
前端·c++·vue