能直接調用析構函數,不能直接調用構造函數


  在我們進行面向對象程序設計的時候,我們肯定要設計自己的類,這樣一來,我們就需要設計自己需要的構造函數和析構函數,那么我們可以通過指針直接調用構造函數和析構函數嗎?

進行驗證:

#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;
} 

  經過上述代碼,我們發現,在類外直接調用構造函數是不行的,但是可以直接調用析構函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM