C++ FAQ Lite[19]--继承(基础)(更新)

NAS+Docker+SillyTavern本地AI角色扮演系统实战指南 角色扮演AI是大语言模型在垂直场景中的典型应用,其核心在于可控的提示工程、持久化的状态管理与低延迟的本地推理。SillyTavern通过角色卡、世界书和记忆流三层抽象,将非结构化人格设定转化为可编程的Prompt注入机制;结合Ollama或llama.cpp实现轻量级模型服务,再依托Docker容器封装依赖、隔离环境、保障升级一致性。NAS作为部署载体,天然解决存储弹性、功耗控制、内网穿透与数据主权等关键问题,尤其适合需要长期运行、多端同步、自主备份的创作者、教育者与技术实践者。本文聚焦NAS平台(x86/ 阅读详情

[19] 继承 — 基础
(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)

简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)


FAQs in section [19]:


[19.1] 对于C++,继承是否重要?

是。

继承是面向对象编程和抽象数据类型(ADT)编程的区分标志

[ Top | Bottom | Previous section | Next section ]


[19.2] 何时该使用继承?

作为一种特化的机制。

人们抽象事物有两种角度:“部分”和“种类”。Ford Taurus是一种(is-a-kind-of-a)汽车,并且 Ford Taurus 有(has-a)引擎,轮胎等。“部分”层次已经随着ADT风格而成为软件系统的一部分。继承则增加了另一种分解的角度。

[ Top | Bottom | Previous section | Next section ]


[19.3] 在C++中如何表达继承? UPDATED!

[Recently added "derived class of" to the list of synonyms (on 7/00). Click here to go to the next FAQ in the "chain" of recent changes .]

通过 :public  语法:

 class Car : public Vehicle {
 public:
   
// ...
 };

我们有几种方式声明以上的关系:

  • Car 是 “一种”("a kind of a")Vehicle(交通工具)
  • Car 起源于("derived from")Vehicle
  • Car 是一种特殊化的("a specialized") Vehicle
  • Car 是Vehicle的一个子类("subclass")
  • Car 是Vehicle的一个派生类(“derived class”)
  • Vehicle 是Car的基类("base class")
  • Vehicle 是Car 的超类("superclass")(这在C++ 社群中不常用)

(注意: 本 FAQ 的论述仅与公有继承(public inheritance)有关; 私有和保护继承并不相同)

[ Top | Bottom | Previous section | Next section ]


[19.4] 将一个派生类型的指针转换成它的基类型可以吗?

可以。

派生类对象是基类对象的一种。因此从派生类指针到基类指针的转换是非常安全的,并且始终会发生。例如,如果有一个 car 类型的指针,而实际上指向了 vehicle,这种从 Car* 到 Vehicle* 的转换是非常安全的和常规的:

 void f(Vehicle* v);
 void g(Car* c) { f(c); }  
// 非常安全; 不用转换

(注意: 本 FAQ 的论述仅与公有继承(public inheritance)有关; 私有和保护继承并不相同)

[ Top | Bottom | Previous section | Next section ]


[19.5] public:, private:和 protected:有什么不同?

  • 在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数和友元访问。
  • 在类的protected: 节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数,友元以及子类的成员函数和友元访问。
  • 在类的public:节中声明的成员(无论数据成员或是成员函数)能被任何人访问。

[ Top | Bottom | Previous section | Next section ]


[19.6] 为什么派生类不能访问基类的private:成员?

为了使派生类在将来基类改变时不受影响。

派生类无法访问基类的私有成员。这样在对基类私有成员作任何改变时,就有效地锁定了派生类。

[ Top | Bottom | Previous section | Next section ]


[19.7] 如何才能在改变类的内在部分时,保护其派生类不被破坏?UPDATED!

[Recently renamed "subclass" to "derived class" (on 7/00). Click here to go to the next FAQ in the "chain" of recent changes .]

类有两套截然不同的接口,它们分别面向两个截然不同的客户:

  • 有为无关类服务的public: 接口
  • 有为派生类服务的protected: 接口

除非你期望你的所有子类全部由你自己的团队建立,否则你应该考虑让基类部分成为private:,并且用 protected:来内联供子类访问基类私有数据的访问函数。使用这种方法,私有部分可以被改变,但是派生类的代码不会被破坏(除非你改变了protected的访问函数)。

[ Top | Bottom | Previous section | Next section ]


E-Mail E-mail the author
[ C++ FAQ Lite | Table of contents | Subject index | About the author | © | Download your own copy ]
Revised Apr 8, 2001

C++ FAQ Lite CFAQ的C++版本,相信CFAQ对C语言学习很有帮助,C++FAQ应该对C++学习者也很有帮助 立即下载

相关推荐

R语言实战:三因素方差分析(ANOVA)从入门到精通(附完整代码解析)

本文详细介绍了如何使用R语言进行三因素方差分析(ANOVA),从数据准备、模型构建到结果解读与可视化,提供完整代码解析。通过实战案例,帮助读者掌握复杂交互效应的分析方法,适用于科研、教育等多个领域的数据分析需求。

weixin_29081101的博客 244

C++ FAQ Lite[23]--继承(你所不知道的)(更新)

[23] 继承 — 你所不知道的(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [23]:[23.1] 基类的非虚函数调用虚函数可以吗

Nicrosoft的专栏 1409

Codesys电子凸轮Cam表实战:从可视化配置到程序化构建

本文详细介绍了Codesys电子凸轮Cam表的实战应用,从可视化配置到程序化构建的全过程。通过包装机和印刷机案例,解析Cam表的基础设置、调试技巧及动态构建方法,帮助工程师快速掌握电子凸轮技术,提升运动控制精度和效率。

weixin_29309785的博客 298

C++ FAQ Lite[16]--自由存储(FreeStore)管理(上)

  [16] 自由存储(Freestore)管理(上)(Part of C++ FAQ Lite, Copyright ? 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [16]:[16.1]

Nicrosoft的专栏 1705

BIM模型导入SuperMap

目录 一、超图 BIM插件安装 1.1 插件下载 1.2 安装 二、BIM模型导出 2.1 Revit插件导出 2.2 SuperMap导入工具 三、SuperMap BIM数据处理与服务发布 四、SuperMap三维数据处理中关于模型高程修改方法 一、超图 BIM插件安装 1.1 插件下载 下载链接:http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?tt=ProductAAS&id=134 1..

爱晒太阳的风 3599

PFC电压环与电流环的带宽设计:如何避免输入电流畸变?

本文深入探讨了PFC电路中电压环与电流环的带宽设计问题,揭示了快速电压环导致输入电流畸变的机制,并提供了避免THD上升的工程实践方法。通过分析双环控制架构、谐波失真原理及带宽设计黄金法则,帮助工程师优化PFC系统性能,实现高功率因数与低谐波失真的平衡。

weixin_28304023的博客 423

C++ FAQ Lite[3]--C++ FAQ Book 与 C++ FAQ Lite

 [3] C++-FAQ-Book 与 C++-FAQ-Lite(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [3]:[3.1]

Nicrosoft的专栏 1728

生物信息学避坑指南:Scissor算法参数alpha和cutoff的黄金设置法则

本文深入解析了生物信息学中Scissor算法的关键参数alpha和cutoff的黄金设置法则,帮助研究者有效整合bulk RNA与单细胞数据,识别单细胞亚群。通过实战验证的调参策略,避开常见陷阱,获得可靠的生物学发现,特别适用于肿瘤异质性研究和免疫细胞分型等场景。

weixin_33734785的博客 451

不存在从“——”到“——*”的适当转换函数—已解决

环境:vs2012编C语言数据结构 Question: 不存在从“——”到“void”的适当转换函数 Answer: 缺少了个*

高欣的博客 1万+

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型?

本文详细介绍了如何利用NVIDIA DGX Spark在桌面端轻松运行200B参数大模型。通过实战演示,从系统初始化、模型获取部署到内存管理与性能调优,重点解析了其统一内存架构如何解决本地推理的显存瓶颈,并探讨了进行轻量化微调(如LoRA)的可能性,为AI开发者和研究团队提供了高效的本地化大模型操作方案。

weixin_29054195的博客 886

数据分享|2000-2021年全国各城市风速数据(逐日、逐月、逐年)

而后,将每日的csv文件进行展点,再投影,采用反距离权重法对每日的数据进行插值。:美国国家海洋和大气管理局(NOAA)下设的国家环境信息中心(NCEI),网址为:https://www.ncei.noaa.gov/data/global-summary-of-the-day/archive/该数据是通过风速平均值插值得来,由于插值的方式与各种处理参数的不同,会导致该数据与其它风速数据不同,数据仅供个人学习使用哦。如果在论文中使用该数据,数据来源请写上面的原始数据来源,处理方法请写上面的处理方式!

J_Giser的博客 1779

C++ FAQ Lite[20]--继承(虚函数)(更新)

[20] 继承 — 虚函数(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [20]:[20.1] 什么是“虚成员函数”? [20.

Nicrosoft的专栏 2234

OceanSim: 基于Isaac Sim GPU 加速水下机器人感知仿真框架

OceanSim 采用先进的基于物理的渲染技术,对水下视觉和声学传感器进行精确建模。与其他模拟引擎相比,OceanSim 的渲染速度要快得多。作为 NVIDIA Issac Sim 的扩展,OceanSim 采用了多功能设计。通过融入快速发展的 NVIDIA Omniverse 生态系统,我们的模拟器自然而然地在机器人学习和水下机器人技术之间架起了一座桥梁,从而促进了水下应用中体现型人工智能技术的开发和部署。OceanSim 将以开放源码的方式提供,使研究界能够以合作的模式作出贡献。

机器人控制与仿真应用 2053

C++ FAQ Lite[24]--继承(私有和保护继承)(更新)

[24] 继承 — 私有继承和保护继承(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [24]:[24.1] 如何表示“私有继承”?

Nicrosoft的专栏 1486

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C++ FAQ Lite[21]--继承(完全继承和可置换性)(更新)

[21] 继承 — 彻底继承和可置换性(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [21]:[21.1] 我应该隐藏基类的公有成员

Nicrosoft的专栏 1436

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C++ FAQ Lite[22]--继承(抽象基类)(更新)

[22] 继承 — 抽象基类(ABCs)(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [22]:[22.1] 将接口和实现分离的作用

Nicrosoft的专栏 1486

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++ FAQ Lite[14]--友元(更新)

[14] 友元(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [14]:[14.1] 什么是友元(friend)? [14.2]

Nicrosoft的专栏 1526

C++ FAQ Lite[7]--类和对象(更新)

[7] 类和对象(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [7]:[7.1] 类是什么? [7.2] 对象是什么? [7

Nicrosoft的专栏 1417

KoboldCpp零门槛上手指南:单文件零安装,一文打通文本、图像、语音全模态AI创作

**KoboldCpp** 是一款面向 GGML 与 GGUF 模型的一站式 AI 创作软件,它的核心卖点只有一个词:**简单**。下载一个可执行文件,双击运行,一个集文本生成、图像绘制、语音合成、多模态理解于一体的本地 AI 工作台就出现在你面前——没有 Python、没有 CUDA 环境配置、没有任何依赖要装。这篇文章将带你从下载第一个文件开始,一路走到性能调优、API 接入甚至源码编译,把

gitblog_00256的博客 545

51c大模型~合集110

为了解决这一问题,在稠密化过程中,我们对容易引起退化和梯度集中的具有极端延展率的高斯面片进行了筛选,并对其增殖过程进行了限制,从而在不牺牲性能的情况下有效稳定了训练过程,保障了优化过程的顺利进行。大规模场景的重建往往还意味着显著的训练开销,要重建 1.97 平方千米的区域会产生接近两千万的高斯点,这意味着 4.6G 的存储以及 31.5G 的显存开销,以及超过三小时的训练时长。站在 AI 研究者的角度,得到了《苦涩的教训》,意味着在总结教训的过程中明确了什么是「更好」的。第二类则瞄准了相对复杂的问题。

whaosoft~aiotの开发板商城 2604

qwen3-0.6B小模型:面向边缘部署的工业级AI落地实践

小模型并非大模型的缩水版,而是针对边缘计算、低资源环境与垂直场景深度优化的轻量智能体。其核心在于平衡精度、延迟、功耗与硬件兼容性,依托参数精控(如0.6B黄金尺寸)、架构瘦身(移除FlashAttention等冗余模块)和领域蒸馏(融合规则引擎与噪声数据)实现高确定性推理。技术价值体现在毫秒级冷启动、INT4量化后280MB体积、单卡T4支持15路视频解析等工程硬指标,广泛应用于工业质检、方言农技问答、社区养老随访与AI编程教学等需离线、低延时、强鲁棒性的真实场景——qwen3-0.6B正是为‘拧紧M3螺栓

weixin_30693683的博客 528

VS2012 Error:不存在从“——”到“——*”的适当转换函数—已解决

源代码功能为建立并输出链表。《C程序设计》P316。 源代码如下: #include #include #define LEN sizeof(struct Student) struct Student { long num; float score; struct Student* next; }; int n; struct Student* creat() { s

angle_11111的博客 2万+

C++ FAQ LITE

http://www.parashift.com/c++-faq-lite/ 向对象(OO)有什么用?C++支持面向对象(OO)编程。C++ 也能够被当作传统的编程语言使用(作为“一种更好的 C”)或使用泛型编程。基本上每种方法都有其优点和缺点。也不要在使用一种方法时期望得到另外一种技术的好处。(最常见的误解是,如果把C++“作为一种更好的C”来使用它,那么就不要期望得到面向对象所

长夜漫漫,无心睡眠 852

C++ FAQ Lite[6]--综述(新)

[6] 综述(Part of C++ FAQ Lite, Copyright © 1991-2001, Marshall Cline, cline@parashift.com)简体中文版翻译:申旻,nicrosoft@sunistudio.com(东日制作室,东日文档)FAQs in section [6]:[6.1] C++ 是一种实用的语言吗? [6.2] C++

Nicrosoft的专栏 1613
上一篇: C++ FAQ Lite[9]--内联函数(更新)
下一篇: C++ FAQ Lite[20]--继承(虚函数)(更新)
Nicrosoft
博客等级 码龄26年 9粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值