作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我知道派生类的构造函数可以传值给基类的构造函数?但是C++中派生类可以访问基类的构造函数和析构函数吗?
最佳答案
Can a derived class access a base class constructor ?
是的。
struct Derived : public Base {
Derived(SomeType some_arg) : Base(something_extracted_from (some_arg)) {…}
“将值传递给基类构造函数”是派生类访问基类构造函数的机制。
Can a derived class access a base class destructor ?
是的,但这是一个非常糟糕的主意。与构造函数不同,析构函数有一个名称,这意味着它可以像普通成员函数一样被调用。 您不想这样做。底层 C++ 机制将在派生类的析构函数返回后调用基类析构函数。如果您的派生类析构函数显式调用基类析构函数,则基类析构函数将在析构过程中被调用两次。这是灾难的根源。
关于c++ - 派生类可以访问基类的构造函数和析构函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138359/
我是一名优秀的程序员,十分优秀!