我们可以通过类指针显式调用析构函数,为什么不构造函数呢?任何想法?
#include <iostream>
class Con {
public:
Con( int x ) : x( x ) {
}
private:
int x;
};
int main() {
Con* c = new Con( 1 );
//c->Con( 2 ); //illegal
c->~Con(); // ok!
delete c;
}
谢谢,
最佳答案
你不能。
Con* c = new Con( 1 );
//c->Con( 2 ); //illegal
您已经在
new
表达式中调用了构造函数。到拥有
Con*
类型的有效指针时,您已经创建了一个对象。在“constructed”对象上调用constructor甚至没有任何意义。那么,为什么C++允许这样做?关于c++ - 有没有一种方法可以使用类实例指针来调用构造函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5806305/