大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个不叫可继承性,这个是静态局部变量,静态局部变量在函数结束的时候内存不回收,其中的值会保留的。
五指山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
所以结果就是 1,2,3了
如果去掉那个static 结果应该是 1 1 1
我不知道有没有理解错你的意思。你申请了 D 的对象(就命名为d吧), 然后要能够访问d-B-A-test ,d-C-A-test
问题在于。C++对继承类的处理机制。
D 有1个B ,一个C, 2个A的test。不过一系列操作之后(构造函数里的步骤),A已经归属到D的名下,B与A再无关联。
B::A就不无法通过了。
而因为有两个A在D中,由于是B,C调用的默认构造,D中两个A的对象并没有名称,无法区分。
有点类似于局部静态变量,虽然他在内存中存在,但是你就是取不到值。
这是在语法上,事实上,你可以从地址方面取值(这可以实现,不过不是从C++面向对象的思路来搞的了。)
继承是面向对象的语言中才有的概念。C语言是没有的,C++中有这个概念,但是不须关键字。例如类C是类A和类B的子类,则可写成如下形式:
class
C:public
A,public
B
{
...
};
当然,类名A,B前面也可能不是public,还可以是protected或private,表示不同的继承方式,