社区
C++ 语言
帖子详情
有关继承的问题
shellray
2003-08-27 10:06:18
受保护继承:
从基类继承的公共和受保护成员都在派生类中边成可保护的
客户代码不能通过派生类对象去访问基类的公共服务
为什么???????
...全文
39
9
打赏
收藏
有关继承的问题
受保护继承: 从基类继承的公共和受保护成员都在派生类中边成可保护的 客户代码不能通过派生类对象去访问基类的公共服务 为什么???????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
carbon107
2003-10-30
打赏
举报
回复
对啊,c++的特点啊
stone_sh
2003-10-30
打赏
举报
回复
三极管:
楼主用的是protected的继承。子类对象当然就不能直接访问base class中的protected及public的成员变量和函数了。楼上的都说了,这个是Cpp这么规定的,为了实现不同的访问权限。
haosjt
2003-10-28
打赏
举报
回复
这要看你的需要了,你需要访问基类的方法,你就把它定义成public,如果不需要就把它写成protected ,这正是面向对象封装的特点!
Wolf0403
2003-10-28
打赏
举报
回复
三极管:
class A
{
public:
void F(){cout << "F" << endl;}
protected:
void F(int i) { cout << "F(" << i << ")" << endl;}
};
class B : protected A
{
};
int main()
{
B b;
b.F(); // 确实不能访问
}
panzhaoping
2003-10-28
打赏
举报
回复
up
robertnet
2003-09-06
打赏
举报
回复
客户代码不能通过派生类对象去访问基类的公共服务?
楼主何出此问?
客户代码也是可以访问基类的public成员及其函数的。不过如果你在派生类中重载了基类之public及其成员函数的话,那派生类Object(对象)访问的就是派生类的成员及其函数。若要强制访问基类成员及其成员函数的话可以用base::Function()来访问(假设基类为base)。
nazha
2003-08-30
打赏
举报
回复
这样体现了封装和继承啊。要不是有元的话C++也可以成为纯面向对象的编程语言了。
nmgpy
2003-08-27
打赏
举报
回复
有什么不好,这样你就可以更精确的控制类成员的访问范围了。
Healer
2003-08-27
打赏
举报
回复
是啊.
你干吗要保护继承呢??
class A : public class B
不就行了??
为什么??
语法和编译器这么规定的.
【C++】
继承
详解,菱形
继承
问题
本文详细介绍了C++中的
继承
概念,包括公共
继承
、保护
继承
和私有
继承
的比较,以及赋值兼容规则。重点讨论了同名隐藏现象,并通过实例展示了子类对象的构造过程。此外,文章还深入探讨了菱形
继承
带来的数据冗余和二义性
问题
,并提出虚拟
继承
作为解决方案,解释了虚拟
继承
与普通
继承
的区别,以及如何通过虚基表解决二义性
问题
。
菱形
继承
问题
在C++和Qt中,多重
继承
会导致菱形
继承
问题
,出现二义性和内存布局
问题
。在Qt中,不建议直接多重
继承
有
继承
关系的类,可通过组合实现类似功能,避免菱形
继承
问题
。若确实需要
继承
,可直接
继承
,无需同时
继承
多个类,以保持代码清晰和可维护。
C++ 中的虚
继承
:解决菱形
继承
问题
的关键
本文围绕C++中的虚
继承
展开,介绍了其用于解决多重
继承
中的菱形
继承
问题
。菱形
继承
会导致数据重复存储和不一致性,而虚
继承
保证基类成员只有一个副本。文中阐述了虚
继承
的语法、工作原理、应用场景,也指出了构造顺序、性能开销等注意事项,助开发者构建高效C++程序。
用虚
继承
解决多重
继承
造成的
问题
本文探讨了C++中多
继承
导致的
问题
,特别是在电话类的实例中,展示了如何使用虚
继承
来解决重复基类成员的
问题
。
C++多重
继承
相关
问题
本文详细阐述了C++中多
继承
的二意性
问题
,包括名字查找过程、菱形
继承
问题
及解决方案。重点讨论了普通多
继承
、私有、公共和受保护
继承
的区别,以及如何通过虚
继承
来解决多
继承
导致的空间浪费、构造函数调用冲突等
问题
。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章