好的,我有一个非常基本的问题,所以请对我轻松点。
在下面的代码:为什么调用基构造函数?
#include<iostream>
class base
{
public:
base() { std::cout << "Base()" << std::endl; }
};
class derived: base {
public:
derived() { std::cout << "Derived()" << std::endl; }
};
int main() {
derived d;
}
输出是:
基地()
派生()
我想知道为什么的构造base
尽管我正在创建derived
类的对象,但仍会调用类?我在FAQ
找不到合适的答案。
我首先阅读[this](http://www.desy.de/gna/html/cc/Tutorial/tutorial.html)。 – Mehrdad 2011-04-10 18:22:36
构造函数的目的是使对象可用。如果你没有调用基础构造函数,那么每个派生类都必须执行每个基类所需的每一个设置,以使对象可用......这与封装等不兼容。 – forsvarir 2011-04-10 18:24:02