| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:关于派生中的访问声明
只看楼主 加入收藏
Susurrant
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:22
专家分:52
注 册:2013-1-7
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:7 
关于派生中的访问声明
假设为私有继承
我在很多地方都看到“访问声明不能改变类成员原来在基类中的成员性质,只能把原基类的保护成员调整为派生类的保护成员,原基类的公有成员调整为派生类的公有成员。”
但是明明在子类的public里可以对父类的protected成员使用访问声明啊?
也就是把父类的protected成员通过访问声明在子类中变为public
程序代码:
#include<iostream>
using namespace std;

class A
{
protected:
    int a;
public:
    A(int p):a(p){}
};

class B : private A
{
public:
    using A::a;   //访问声明,a在父类中为protected,私有继承
public:
    B(int p):A(p){}
};

int main()
{
    B C(1);
    cout << C.a << endl;
    return 0;
}


以上代码正常运行!!!
怎么回事??
搜索更多相关主题的帖子: public 声明 
2013-05-24 17:10
ch137954447
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2013-5-24
收藏
得分:2 
私有继承关键字是private。protected是保护继承,作用域是父类和他的子类
2013-05-24 17:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:2 
从哪里听来的?
我从来没听说过有这种限定,以防万一,我特意浏览了一下『ISO/IEC 14882:2003(E)』中『The using declaration』相关的内容,也没有发现有这种限定。(当然,查找时一目十行可能有遗漏,但漏掉的几率不大)
2013-05-25 09:57
Susurrant
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:22
专家分:52
注 册:2013-1-7
收藏
得分:0 
回复 3楼 rjsp
在网上搜索这一句话时有不少资料(ppt,笔记等)里有这句话,老师的教材里也是。
图片附件: 游客没有浏览图片的权限,请 登录注册

@rjsp

effort ? succeed : retry ;
2013-05-26 12:29
ch137954447
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2013-5-24
收藏
得分:0 
回复 3楼 rjsp
面向对象编程的基础,你理解了三个关键字各自的作用域,这个就很简单
2013-05-27 08:57
Susurrant
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:22
专家分:52
注 册:2013-1-7
收藏
得分:0 
回复 5楼 ch137954447
不是不理解三个作用域,而是那句话和我实际编的函数有出入

effort ? succeed : retry ;
2013-05-27 15:42
子楠
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:111
专家分:164
注 册:2013-4-9
收藏
得分:2 
可以呀,a继承过来就是派生类的私有成员,派生类的成员及函数可以调用啊
2013-05-27 16:42
ch137954447
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2013-5-24
收藏
得分:0 
回复 6楼 Susurrant
你的using声明把a在B里的权限从private更改成了public,
2013-05-28 09:18
快速回复:关于派生中的访问声明
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027188 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved