C++派生继承中的一个问题!

系统 2975 0
#include " iostream.h "

class A ... {
public :
int num;
A()
... {
num
= 1 ;
}

virtual void Display() ... {
cout
<< " A " ;
}

void print() ... {
cout
<< num;
}

static void show() ... {
Aa;
a.Display();
a.print();
}

}
;

class B: public A ... {
public :

int num;
B()
... {
num
= 2 ;
}

void Display() ... {
cout
<< " B " ;
}

void print() ... {
cout
<< num;
}

virtual void show() ... {
Display();
print();
}

}
;

class C: public B ... {
public :
int num;
C()
... {
num
= 3 ;
}

void Display() ... {
cout
<< " C " ;
}

virtual void print() ... {
cout
<< num;
}

void show() ... {
Display();
A::print();
}

}
;

void main()
... {
B
* b = new C;
cout
<< " b->num= " << b -> num << endl;
}

继承之后
类B中的num不会覆盖A中的num,继承之后B中A中的num不可见,除非A::num才可以
类C中的num也不会覆盖B和A中的num,也是同样的道理
当一个c对象地址转成B地址,可见的就是B类中num,所以打印出来的就是2

C++派生继承中的一个问题!


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论