class A
{
public:
A()
{
std::cout << "I am ctor\n";
}
~A()
{
std::cout << "I am dtor\n";
}
void printme()
{
std::cout << "I am printme\n";
}
};
int main()
{
A aobj;
aobj.printme();
aobj.~A();
aobj.printme();
return 0;
}
這是輸出:C++:析構函數如何在內部工作以及誰調用默認析構函數?
$./testdtor
I am ctor
I am printme
I am dtor
I am printme
I am dtor
到析構函數顯式調用的行爲像一個正常的函數調用,一旦對象超出範圍,調用析構函數,但我想通過知道哪個實體?
你是什麼意思, 「實體」?它由編譯器生成的代碼在對象作用域的末尾調用。 –
是什麼讓你認爲一個「實體」稱爲析構函數?它只是生成的代碼的一部分。 – tenfour
我想用「實體」OP意味着使用一個非常抽象的詞,而不是他認爲這樣的「實體」是他的程序代碼的一部分或者這樣......他的意思是「實體」足夠抽象以包含生成的程序集;) – leemes