#include <iostream>#include <string>using namespace std;class N{public: N() { cout<<"N()"<<endl; } ~N() { cout<<"~N()"<<endl; } void set_name() { name = "Jim"; } string get_name() { return name; }protected: string name; };class B:public N{public: B() { cout<<"B()"<<endl; } ~B() { cout<<"~B()"<<endl; }};class C:public B{public: C() { cout<<"C()"<<endl; } ~C() { cout<<"~C()"<<endl; }};void text(C *n){ n->set_name(); delete n; n = NULL; }int main (){ C c; text(&c); ? ? return 0;}看看這個代碼為什么運行時,調用了兩次析構函數?而且視頻中老師是說并不創建臨時變量的呀
C++多繼承和釋放內存
Carmel_Evans
2019-02-19 15:36:34