派生类可以访问基类的构造函数和析构函数吗?

时间:2014-03-03 03:51:17

标签: c++

我知道派生类构造函数可以将值传递给基类构造函数吗?但是可以在C ++中派生类访问构造函数和基类的析构函数吗?

1 个答案:

答案 0 :(得分:5)

  

派生类可以访问基类构造函数吗?

struct Derived : public Base {
   Derived(SomeType some_arg) : Base(something_extracted_from (some_arg)) {…}

您的"将值传递给基类构造函数" 机制,派生类通过该机制访问基类构造函数。


  

派生类可以访问基类析构函数吗?

是的,但这是一个非常糟糕的主意。与构造函数不同,析构函数具有名称,这意味着它可以作为普通成员函数调用。 您不希望这样做。在派生类的析构函数返回后,底层C ++机制将调用基类析构函数。如果派生类析构函数显式调用基类析构函数,则在销毁期间将调用基类析构函数两次。那是灾难的秘诀。