不懂,问一下阿

瞓唔着噶鱼Kerwin 2003-08-21 11:11:22
calss ClassA
{
pbulic:
int m_data1;
int m_data2;
void func1(){};
void func2(){};
virtual void vfunc1(){};
virtual void vfunc2(){};
};

class ClassB:public ClassA
{
public:
int m_data3;
void func2(){};
virtual void vfunc1(){}
}
问一下,象上边的定义,classB中有几个member variable&&member function?

...全文
28 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
skywater 2003-08-22
  • 打赏
  • 举报
回复
to sevecol(看什么看...).
我试了一下,是可以的。
先前居然没注意到,这下又长了见识,thanks!
bm1408 2003-08-22
  • 打赏
  • 举报
回复
解释的很清了!
aflyinghorse 2003-08-22
  • 打赏
  • 举报
回复
同意sevecol(看什么看...)

构造B的对象时,会先构造基类A的对象
所以B的对象就含有一个基类A子对象
基类A的对象的保护和公有成员在B的对象
中都是可访问的,区别是保护成员只在B的对象
内部可访问,而公有成员在任何函数里都可访问
sevecol 2003-08-22
  • 打赏
  • 举报
回复
to skywater(宁镇子):
是可以这样调用的
jack_wq 2003-08-22
  • 打赏
  • 举报
回复
同意:
回复人: sevecol(看什么看...) ( ) 信誉:100 2003-08-21 23:35:00 得分:0


有三个成员变量
m_data1,m_data2,m_data3
6个成员函数
func1,A::func2,B::func2,A::vfunc1,B::vfunc1,func2
对于类ClassB外部来说B::func2遮挡了A::func2,只有通过A::func2这种形式调用
ClassB b;
b.A::func2();
vfunc也类似.不过要注意这个是虚函数

这些是一些很基本的概念,我觉得最好仔细的看一下书,里面应该讲的很详细!
sevecol 2003-08-22
  • 打赏
  • 举报
回复
ClassA类的成员函数是public,而ClassB也是public继承自ClassA的。
skywater 2003-08-22
  • 打赏
  • 举报
回复
sevecol(看什么看...):
ClassB b;
b.A::func2();
可以这样用吗???
如果想用A的实现方式,应该是在ClassB的内部,例如
void ClassB::func2()
{
//some implement of ClassB;

ClassA::func2();
}
skywater 2003-08-22
  • 打赏
  • 举报
回复
Class B实际上是这个样子

Class B
{
public:
int m_data1;
int m_data2;
int m_data3;

void func1(){};
void func2(){}; //把Class A的覆盖住了,B的对象实际上只能使用B中的实现,无法使用A的实现,除非在B的func2中使用A::func2。
virtual void vfunc1(){}; //B的对象使用Class B中的实现
virtual void vfunc2(){}; //A和B的对象都是用A中的实现
};
nirvana_li 2003-08-22
  • 打赏
  • 举报
回复
看看《inside object model》
yzb1000 2003-08-22
  • 打赏
  • 举报
回复
怎么会有6个成员函数的?
sevecol 2003-08-21
  • 打赏
  • 举报
回复
有三个成员变量
m_data1,m_data2,m_data3
6个成员函数
func1,A::func2,B::func2,A::vfunc1,B::vfunc1,func2
对于类ClassB外部来说B::func2遮挡了A::func2,只有通过A::func2这种形式调用
ClassB b;
b.A::func2();
vfunc也类似.不过要注意这个是虚函数
vldb 2003-08-21
  • 打赏
  • 举报
回复
3
4

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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