class CTemp{
public:
CTemp(){
printf("\nIn cons");
}
~CTemp(){
printf("\nIn dest");
}
};
void Dowork(CTemp obj)
{
printf("\nDo work");
}
int main()
{
CTemp * obj = new CTemp();
Dowork(*obj);
delete obj;
return 0;
}
,我得到的是
In cons
Do work
In dest
In dest
現在爲什麼構造函數被調用一次的輸出,但析構函數被調用兩次?有人可以解釋這個嗎?
是的。工作應該採用'const CTemp&'。 –
所以這意味着在這種情況下複製構造函數被調用? – singh
@singh是的。默認實現的複製c-tor將被調用。 – ForEveR