看了这么久的C++,我始终对C++的继承机制不太了解,希望各位大大可以帮我解解惑.
C++中关于派生有以下几条"规则",但它们似乎是互相矛盾的.
派生类将基类的所有成员(除构造函数和析构函数外)无选择性地全部接收......1
基类的私有成员对派生类不可见..........................................2
调用派生类的构造函数和析构函数时,要调用到基类的构造函数和析构函数.
要使用基类的私有成员,要用基类的公有成员函数调用.......................3
问题:
1) 由1,2可以看到基类的私有成员是被接收了的,但基类的私有成员对派生类不可见,说明基类的私有成员被以某种方式"隐藏"了,但类的public,private,protected是不能隐藏的,那么它是怎么做到的呢?
2) 由1可以看到派生类应该是独立的,完整的一个类,但是派生类的构造函数和析构函数却要调用到基类的构造函数和析构函数,被"隐藏"的基类的私有成员却可以通过基类的公有成员函数和构造函数来进行赋值,计算等运算,这似乎和第1条不相服,这是为什么呢?