jac*_*k22 0 c++ inheritance class
我想知道关于c ++中类派生的一些事情,所以我有超类x和继承类y,我这样做了
class x{
public:a;
private:b;
protected:c;
}
class y:public x{
public:d;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,y如何访问a,b和c以及我的意思(公共,受保护,私有)
第二种情况:
class x{
public:a;
private:b;
protected:c;
}
class y:private x{
public:d;
}
Run Code Online (Sandbox Code Playgroud)
同样的问题?
第三种情况:
class x{
public:a;
private:b;
protected:c;
}
class y:protected x{
public:d;
}
Run Code Online (Sandbox Code Playgroud)
同样的问题呢?
抱歉,我想我写了太多的再见
在所有形式的继承中:
y可以查看它的基类(x)并查看public和protected.y可以看到它public和protected成员.y可以看到其public成员.private,除非他们是friend.在公共继承中:
y可以查看x和查看public.public和protected的部分x成为protected在yy可以看到它们.y无法看到它们.public和protected的部分x成为private在y:y看不到它们.y无法看到它们.这个C++ FAQ提供了有关私有和受保护继承的良好信息.
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |