c++类定义

skvd 2005-01-21 11:10:12
class A
{
private:

int a ;
public:

int b :

};
class B:private A{};

下列操作正确的是:(选择一 项)
a:
A obj;
obj.a=10;
b:
A obj;
obj.b=10;
c:
B obj;
obj.a = 20
d:
B obj;
obj.b=20:


我是一个c++初学者
请问高手选择那一个

...全文
125 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dudu妈 2005-01-21
  • 打赏
  • 举报
回复
b
下列操作正确的是:(选择一 项)
a:
A obj;
obj.a=10;//因为a成员变量是私有的,对外部是私有的,所以A的对象不能调用a,所以错误
b:
A obj;
obj.b=10;//正确,因为b成员变量是公有的,类的对象可以访问
c:
B obj;
obj.a = 20//因为B是私有继承,所以不能访问基类中的成员变量
d:
B obj;
obj.b=20://同上
cnepine 2005-01-21
  • 打赏
  • 举报
回复
B选项就是基类A创建的对象,故可以访问公有成员b;

只要是派生类B创建的对类,不论访问基类的什么成员都是不行的,这里是私有继承吗.
ww0713 2005-01-21
  • 打赏
  • 举报
回复
基类对象访问变量b?
你是说外部函数引用b吧?用 对象名.b 来引用,
若 b 是私有成员,则不能被外部函数访问
skvd 2005-01-21
  • 打赏
  • 举报
回复
如果是基类的创建的对象
去访问变量b 呢?
daylove 2005-01-21
  • 打赏
  • 举报
回复
public派生与private派生的不同点在于基类中的public成员在派生类中的访问属性:
public派生时,基类中的public成员相当于派生类中的public成员。
private派生时, 基类中的public成员相当于派生类中的private成员。

因此,private派生确保基类中的方法只能被派生类的对象的方法间接使用,而不能被外部使用。public派生使派生类对象与外部都可以直接使用基类中的方法,除非这些方法已经被重新定义。

daylove 2005-01-21
  • 打赏
  • 举报
回复
无论哪种派生方式,基类中的private成员在派生类中都是不可见的。也就是说,基类中的private成员不允许外部函数或派生类中的任何成员访问。
skvd 2005-01-21
  • 打赏
  • 举报
回复
请告诉我为什么?
在此谢谢
dongyuanzhang 2005-01-21
  • 打赏
  • 举报
回复
b 啊!

class B:private A{};//私有继承!

thuers 2005-01-21
  • 打赏
  • 举报
回复
b~!

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧