在我們進行面向對象程序設計的時候,我們肯定要設計自己的類,這樣一來,我們就需要設計自己需要的構造函數和析構函數,那么我們可以通過指針直接調用構造函數和析構函數嗎?
進行驗證:
#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; }
經過上述代碼,我們發現,在類外直接調用構造函數是不行的,但是可以直接調用析構函數。