重载=的拷贝函数(copy assignment) 因此,当你写下如下的代码: 1 class Empty{}; 那么编译器会自动生成: class Empty{ public: Empty(){...} //default构造函数 Empty(const Empty& rhs){...} //copy构造函数 ~Empty(){...} //析构函数 Empty& operator=(const Empty& rhs){...} //copy assignme...
编译器默认的拷贝构造函数会自动帮我们调用父类的拷贝构造函数,但是现在的情况是,父类A的拷贝构造函数是私有的,子类很明显是无法调用父类的私有方法的,所以编译肯定无法通过. 这个就是禁止默认拷贝和复制的原理. 在C++ 11中我们引入了delete关键字来帮我们完成这个操作,接下来我们重点理解下delete关键字....
1、explicit关键字只需用于类内的单参数构造函数前面。 explicitTest(intparam) { } 1. 2. 3. 2.除了第一个参数以外的其他参数都有默认值的时候, explicit关键字依然有效 explicitTest(intp1,intp2=0) { } 1. 2. 3.