qq空间认证的网站后台根目录,seo和sem是什么意思,开网站做外贸,软件外包行业分析1、public —— 外部也能访问
2、private —— 只能内部#xff08;友元也可以#xff09;
3、explicit —— 只可用于声明単参构造函数。声明类的构造函数是显示调用#xff0c;不是隐式。阻止调用构造函数时隐式转换#xff08;赋值初始化#xff09;
4、默认构造函数…1、public —— 外部也能访问
2、private —— 只能内部友元也可以
3、explicit —— 只可用于声明単参构造函数。声明类的构造函数是显示调用不是隐式。阻止调用构造函数时隐式转换赋值初始化
4、默认构造函数 —— 不提供参数调用的构造函数。构造函数一般不定义成虚函数。
默认构造函数时调用时不提供参数的构造函数发生在调用时而并不一定是不接受任何参数的构造函数
class Human {
private:string name;int age;
public:Human(string humansName Adam, int humanAge 18) {name humansName;age humanAge;}
};Human adam;
可以使用关键字constexpr将构造函数定义为常量表达式。在有助于提高性能。
constexpr Human() {}
5、抽象类必须有一个纯虚函数。抽象类中的纯虚函数必须能被覆盖也就是不能和final一起用
6、为了防止内存泄露一般将析构函数定义为虚函数。
~ 腭化符号
析构函数不能重载每个类只有一个析构函数。
7、要避免拷贝构造函数无限制的递归 —— 栈溢出
8、带有指针的类建议都要自己写包含深复制的复制构造函数。输如const 的引用。
如果不是引用就会无限递归构造见第七条。
肩并肩的还要再定义一个“复制赋值运算符 opertor”编译器提供的也是浅复制。
9、移动构造函数改善性能 std::move()
肩并肩的还要再定义一个移动赋值运算符