class A { public: A() { printf("constructor"); }; private: ~A() {}; }; int main(int argc,char** argv[]) { void *p = new A(); //ok void *p = new A[5]; //error return 0; }
我想只在堆中创建对象(也就是说只通过new),所以我将默认的析构函数设置为private.但是,当我使用新的A()只创建一个对象时它起作用,当我使用新的A [5]时它不起作用.为什么?我很迷惑.非常感谢!