鱼C论坛

 找回密码
 立即注册
查看: 3277|回复: 2

关于c++控制访问。。

[复制链接]
发表于 2013-4-8 22:37:47 | 显示全部楼层 |阅读模式
5鱼币
我的设定是这样的 。。有一个基类 :
class Base
{
public:
    int name;
    void con1();
protected:
    int age;
private:
    int sex;
} ;
他的子类:
class Sub:public Base
{
public:
    void con(Base a);
};
他的子类Sub公共继承他之后应该也分别拥有public protected private3种成员。
显然Base类可以访问他自己的public protected private3种成员,但是他的子类却只能访问他本身的public 和 protected的成员 无法访问private的成员 ,同时他的子类只能访问Base类里的public成员 ,protected和private都不能访问 。即:
void Base::con1()
{
    age=12;    //对
    sex=0;       //对
    name=100;//对
}
void Sub::con(Base a)
{
    age=10;                //对
    a.name=1;            //对
    sex=1;                   //错
    a.age=10              //错
    a.sex=1;                //错
}
我的主要疑问是为什么Sub不能访问他自己的private 成员和Base里的protected成员,麻烦各位高手给解答一下 。。

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-8 22:52:52 | 显示全部楼层
1:sub只继承了base的public protected 2种成员,private是不能被继承的,这是规定;
2:sub自己没有private成员,何来访问只说;
不知道这样解释楼主明白了么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-9 17:01:51 | 显示全部楼层
楼主好好看看小甲鱼c++类的视频,另外,楼上正解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-4 08:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表