注册 登录
编程论坛 C++教室

派生类的一个重要性质

未未来 发布于 2013-05-13 21:41, 553 次点击
看到protected成员部分关于protected的一个重要性质的表述看不大明白,


派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊的访问权限。


求解释啊。。。书上的好扯。
5 回复
#2
邓士林2013-05-14 00:13
仔细理解,这是为了安全性而封装的
#3
peach54602013-05-14 18:10
以下是引用未未来在2013-5-13 21:41:26的发言:

看到protected成员部分关于protected的一个重要性质的表述看不大明白,


派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊的访问权限。


求解释啊。。。书上的好扯。

primer这本书有讲这么深?
#4
未未来2013-05-14 18:18
回复 3楼 peach5460
对呀。。而且他还讲了个例子 有点牛头不对马嘴的感觉。
#5
peach54602013-05-15 14:13
以下是引用未未来在2013-5-14 18:18:18的发言:

对呀。。而且他还讲了个例子 有点牛头不对马嘴的感觉。

例子呢?
#6
peach54602013-05-15 14:32
程序代码:

#include<iostream>
using namespace std;

class Base
{
public:
    Base():i(0),j(0){};
protected:
    int i;
private:
    int j;
};

class Derived:public Base
{
    Derived():Base(){};

    print(const Base &b, const Derived &d)
    {
        int num = i;
        //num = b.i; //error. cannot access protected member declared in class 'Base'
        num = d.i;
        //num = d.j; //error. cannot access private member declared in class 'Base'
    };
};

int main()
{
    return 0;
}
1