class test1{
public:
test1(){
cout << "default" << endl;
}
test1(const test1 &test) =delete;
test1& operator=(const test1 &test) = delete;
};
int main() {
test1 test[3] = {test1(), test1(), test1()};
return 0;
}
报错:error: use of deleted function 'test1::test1(const test1&)'|
但test数组应该没有调用拷贝构造呀,证明如下
class test1{
public:
test1(){
cout << "default" << endl;
}
test1(const test1 &test){
cout << "copy" << endl;
}
test1& operator=(const test1 &test){
cout << "operator =" << endl;
return *this;
}
};
int main() {
test1 test[3] = {test1(), test1(), test1()};
return 0;
}
的输出为:
default
default
default
Process returned 0 (0x0) execution time : 0.423 s
Press any key to continue.
------------------------------------------------------------------------------------------------------
刚刚又试了下 发现 不是数组初始化的问题, 只要是类似 test1 test = test1();这种用显示调用构造函数的都报上诉错wu