default和delete


在C++中,有四类特殊的成员函数,分别为:默认构造函数,默认析构函数,默认拷贝构造函数,默认赋值运算符。他们的作用为创建、初始化、销毁、拷贝对象。

虽然在类A中什么都没有定义,但是编译会通得过,因为编译器会认为有必要,于是会为我们默认创建。

如果我不想要编译器为我们创建,于是可以=delete函数,这样编译器就不会为我们创建:

这里不用关心权限问题,也就是不用关心是否为public还是private.

关于default:

等价于:

C++11中引入这个关键字,目前理解来看,就是少写了中括号,具体深入的用途还有待发掘。

关于delete的应用,比如单例模式:

  也就是只允许通过静态的方式创建一次。