社区
C++ 语言
帖子详情
请教:多继承的虚基类问题
jzp12
2007-04-21 12:05:40
问题描述如下:
A->B, A派生出B
A->C, A派生出C
(B,C)->D, B和C派生出D
A是虚基类,A、B和C都没有写出默认的构造函数,重载了A、B和C的构造函数(都仅一个),那么在写D的构造函数时是否要对A的重载构造函数进行初始化?
是否同时需要对B和C的重载构造函数进行初始化?
不知道我的表述是否清晰。
...全文
415
4
打赏
收藏
请教:多继承的虚基类问题
问题描述如下: A->B, A派生出B A->C, A派生出C (B,C)->D, B和C派生出D A是虚基类,A、B和C都没有写出默认的构造函数,重载了A、B和C的构造函数(都仅一个),那么在写D的构造函数时是否要对A的重载构造函数进行初始化? 是否同时需要对B和C的重载构造函数进行初始化? 不知道我的表述是否清晰。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jzp12
2007-04-21
打赏
举报
回复
to msgsnd:
May be you misunderstand my presentation
to plo2168424:
我忘记提一点:我的虚基类,同时也是抽象类,所以A是不能实例化的.
还有谁有高见?
我写这个程序的意图在于希望这个程序可以尽可能多的C++基础知识,如:
纯虚函数,虚基类,动态空间分配,重载,多继承,多层继承...等
plo2168424
2007-04-21
打赏
举报
回复
没式过 可能要出错
最好把默认构造函数写起~
要不把A B C初始下~
msgsnd
2007-04-21
打赏
举报
回复
#include<iostream.h>
class complex
{
double real; //?场
double imag; //?场
public:
complex();
complex(double r, double i);
void addCom(complex &c); //?衡?蝋?ぇ㎝
void outCom ( ); //?蝋???禜?场㎝?场
};
complex::complex()
{
real=0;imag=0;
}
complex::complex(double r, double i)
{
real=r;imag=i;
}
void complex::addCom(complex &c)
{
real=c.real+real;
imag=c.imag+imag;
}
void complex::outCom()
{
cout<<"("<<real<<","<<imag<<")"<<'\n';
}
void main()
{
complex c1(1,2),c2(3,4),c3;
c3.outCom();
c3.addCom(c1);
c3.addCom(c2);
c3.outCom();
}
xlbdan
2007-04-21
打赏
举报
回复
如果A没有写任何构造函数的话,D不用管它的。
当然如果A写了任何一个构造函数,D都要直接对它负责传参
这时B和C对A的构造函数的传参就被抑制了。
D当然也需要对B和C的构造函数传参
C++
虚基类
:解决
多继承
中的菱形继承
问题
本文详解C++
虚基类
如何解决
多继承
中的菱形继承
问题
,包括数据冗余与访问二义性。通过
虚基类
声明,确保最终派生类中仅保留一份基类实例,并介绍其初始化规则、底层实现机制(如
虚基类
表与指针)及适用场景,帮助开发者正确使用
虚基类
避免设计缺陷。
C++-类-继承和派生7:
多继承
【
虚基类
】【虚继承解决了菱形继承所带来的二义性
问题
】
本文深入探讨了C++中的
多继承
和虚继承概念,解析了它们带来的二义性
问题
及解决方案,通过实例详细讲解了虚继承的实现原理。
虚继承是什么意思_C++虚继承、
虚基类
、虚函数与纯虚函数的概念和引用 | 求索阁...
博客围绕C++
多继承
展开,介绍了
多继承
的多义性
问题
,即访问父类成员时编译器无法确定路径。给出两种解决方法:使用作用域分辨符和
虚基类
技术。还详细讲解了虚继承与
虚基类
的定义、语法、语义及
虚基类
的初始化
问题
,帮助理解C++
多继承
机制。
C++
多继承
本文详细解析了
多继承
的基本概念,以及在C++中使用
多继承
可能遇到的两大
问题
:方法重名冲突和同一基类多次实例化。通过实例演示了如何使用作用域解析操作符解决方法重名
问题
,以及引入
虚基类
概念解决基类重复实例化
问题
。同时,文章还深入探讨了在使用
虚基类
时构造函数初始化的特殊规则。
继承深度精讲与菱形继承、虚继承底层原理,单继承 /
多继承
特性、菱形继承二义性冗余、virtual 虚继承内存模型、派生布局、工程选型避坑实战
本文系统讲解C++单继承、
多继承
及菱形继承的内存布局与二义性
问题
,重点剖析虚继承(virtual)的底层实现机制:vbptr
虚基类
指针、vbtable
虚基类
表及偏移寻址原理;阐明虚继承如何解决顶层父类冗余、重复构造和访问二义性三大
问题
,并对比普通
多继承
与虚继承的内存与性能开销,给出工程中
多继承
的规范使用与避坑指南。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章