继承与派生
派生的方式
公有方式派生(public)
私有方式派生(private)
保护方式派生(protected)
多继承
多继承
多继承可以看作是单继承的扩展。所谓多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一 个单继承。
当使用多继承时要注意避免发生二义性
class A {
void print() {}
};
class B {
void print() {}
};
class C:public A, public B {
};
int main(int argc, char *argv[])
{
C c;
c.print();
return 0;
}
声明虚基类的一般形式为
class 派生类名: virtual 继承方式
基类名
经过这样的声明后,当基类通过多条派生路径被一个派生类继承时,该派生类只继承该基类一次。
需要注意: 为了保证虚基类在派生类中只继承一次,应当在该基类的所有直接派生类中声明为虚基类。否则仍然会出现对基类的多次继承。
派生类构造函数名(参数表0):基类构造函数名(参数表1), 对象成员名1(参数表2),...,
对象成员名n(参数表n+1)
{ //... }
在定义派生类对象时,构造函数与析构函数的执行顺序为:
构造函数
基类 对象成员 派生类
析构函数
派生类 对象成员 基类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App