在我們進行面向對象程序設計的時候,我們肯定要設計自己的類,這樣一來,我們就需要設計自己需要的構造函數和析構函數,那么我們可以通過指針直接調用構造函數和析構函數嗎?
進行驗證:
#include <iostream>
using namespace std;
//程序說明直接調用構造函數會出現錯誤,直接調用析構函數是成功的。
class A{
public:
int id;
A(int i):id(i){cout<<"ctor.this = "<<this<<" id = "<<id<<endl;
}
~A(){cout<<cout<<"dtor.this = "<<this;
}
};
int main3(){
A* pa = new A(1);
cout<<pa->id<<endl;
cout<<"直接調用構造函數失敗:"<<endl;
//pa->A(1);
cout<<"直接調用析構函數成功:"<<endl;
//delete pa;
pa->~A() ;
return 0;
}
經過上述代碼,我們發現,在類外直接調用構造函數是不行的,但是可以直接調用析構函數。
