首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

对类的继承的迷惑

2013-10-29 
对类的继承的疑惑书上给出了如下例子:class Base {public:void basemem() // public memberprotected:int

对类的继承的疑惑
书上给出了如下例子:

class Base {
public:
void basemem(); // public member
protected:
int i; // protected member
// ...
};
struct Public_derived : public Base {
int use_base() { return i; } // ok: derived classes can access i
// ...
};
struct Private_derived : private Base {
int use_base() { return i; } // ok: derived classes can access i
};

照书上说base的派生类Public_derived和Private_derived中return i;这个i应该是这两个派生类访问基类(base)的protected成员(int i;)吧。如果定义了一个Base类和一个派生类对象,那么return的这个i就是Base类对象中的成员i吗?

struct Derived_from_Private : public Private_derived {
// error: Base::i is private in Private_derived
int use_base() { return i; }
};

在这个派生类中的语句return i;这个i到底属于哪个类?为什么Base::i会在Private_derived中,那么这个i不是同时拥有两个作用域吗?
关于:派生类不能访问基类的的private成员。基类的private成员经过继承不是成为派生类的private成员吗?
而这里的i难道不是通过this指针调用的?在成员函数中是可以使用本类的private成员的啊。。。
我很奇怪继承到底是怎么进行的。 继承 类 access
[解决办法]
要分清class和object  class只是一种抽象

热点排行