C++ 在派生类中初始化基类的 const int?

2023-11-23

我的基类中有一个常量 int 变量,我想在派生类中初始化响应变量,并使用不同的值(作为参数),这可能吗?

这就是我所做的:

// Base.h (methods implemented in Base.cpp in the actual code)
class Base {
    public:
        Base(const int index) : m_index(index) {}
        int getIndex() const { return m_index; }
    private:
        const int m_index;
};

// Derived.h
class Derived : public Base {
    public:
        Derived(const int index, const std::string name) : m_name(name) {}
        void setName(const std::string name) { m_name = name; }
        std::string getName() const { return m_name; }
    private:
        std::string m_name;
};

但显然它在要求我Base::Base()它不存在,如果我定义它,我将不得不给出默认值m_index,我不想这样做。我必须定义吗const int m_index分别在每个派生类中?

类似的问题,但我不确定静态是否会以任何方式影响此问题:C++:在派生类中初始化具有不同值的基类常量静态变量?


只需致电相应的Base构造函数中的Derived的初始化列表:

Derived(const int index, const std::string name) : Base(index), m_name(name) {}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 在派生类中初始化基类的 const int? 的相关文章

  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 未找到 Boost 库,但编译正常

    我正在尝试在 C 中使用 boost 的文件系统 使用时看起来编译没问题 c c Analyse c o Analyse o g W Wall L usr local lib lboost filesystem lboost system
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 是否允许全局静态标识符以单个 _ 开头?

    换句话说 可能static 文件范围 全局变量恰好以一个下划线开头 而不会产生与 C 实现发生名称冲突的可能性 https www gnu org software libc manual html node Reserved Names
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然

随机推荐

  • 具有释放/获取语义的易失性

    从 Java 5 开始 volatile关键字具有释放 获取语义 以使副作用对其他线程可见 包括对非易失性变量 以这两个变量为例 int i volatile int v 注意i是一个常规的 非易失性变量 想象一下线程 1 执行以下语句 i
  • HOLDLOCK 与 UPDLOCK

    它似乎使用HOLDLOCK or UPDLOCK在一个事务 例如 T1 中 不会阻止来自另一个事务 例如 T2 的读取访问 据我了解 直到T1完成 HOLDLOCK将阻止 T2 更新 删除 和一个UPDLOCK将阻止 T2 进行更新 删除
  • 如何使用 React hooks 将 props 同步到 state:setState()

    我正在尝试使用组件接收的 props 使用 React hook setState 设置状态 我尝试使用下面的代码 import React useState useEffect from react const Persons props
  • 使用比核心数量更多的工作进程

    ThisPYMOTW 的示例给出了使用的示例multiprocessing Pool 哪里的processes传递的参数 工作进程数 是机器上核心数的两倍 pool size multiprocessing cpu count 2 否则该类
  • Celery 3.1.9 Django 集成,指定设置文件,不使用 djcelery

    我今天开始将 celery 3 1 9 与 Django 一起使用 这个较新的版本与 django 具有更紧密的集成 无需使用 django celery 我使用多个设置文件 我想知道是否有一种简单的方法来指定初始化时使用哪个设置文件cel
  • 如何检查对象的所有属性是否为 null 或为空?

    我有一个对象 我们称之为ObjectA 该对象有 10 个都是字符串的属性 var myObject new Property1 Property2 Property3 Property4 是否有办法检查所有这些属性是否为 null 或为空
  • 错误:无法将“int&”类型的非常量左值引用绑定到“int”类型的右值

    我需要创建一个Bar对象 它有一个私有对象Foo f 然而 价值Foo对象参数应通过特定方法传递int genValue 如果我初始化f在构造函数范围内Bar 编译器报错 比如没有构造函数Foo 如果我这样构建Bar f genValue
  • finally 不在 .NET try-finally 块中执行时的条件

    基本上我听说某些条件会导致 NET 超越finally堵塞 有谁知道这些条件是什么 两种可能性 堆栈溢出异常 执行引擎异常 当有一个finally块时 不会执行StackOverflowException因为堆栈上没有空间来执行更多代码 当
  • 解决方案内的 Visual Studio 项目参考

    在解决方案中引用项目的最佳方式是什么 我通过添加引用 gt 项目添加了引用 然而 它链接到发布 DLL 或调试 DLL 我想在引用中包含项目本身 当我们编译项目时 必须编译所有引用项目 通过依赖项 这个怎么做 如果您想要引用项目本身 而不是
  • 使用 HTML 链接 rel 导入 HTML 文档

    我正在尝试使用以下命令将 HTML 文档导入到我的主文档中 但它似乎不起作用 我正在关注这个演示文稿 使用 Chrome 28 并且我已启用这两个标志about flags Enable experimental WebKit featur
  • 使用 css 设置 div 外宽度

    请问有没有办法设置outerwidth of a div using css忽略填充和边框 当我设置一个div to be 50 宽度 内边距和边框将添加到宽度中 如果没有的话我该如何解决这个问题javascript or jQuery o
  • 如果每个观测值都有新数据,我如何一次订阅 Angular2 中的多个可观测值并等待?

    我有一个角度组件 它使用 3 个服务 这些服务中的每一个都有一个我可以订阅的观察者 如果观察到的任何变化通过 websockets feathers js 发生 则必须更新组件的视图 我想要doSomethingWithTheNewData
  • 如何更新 SQL 数据库中的值? SQLite/Python

    我创建了一个表 并将数据插入到表中 我想知道如何更新 编辑数据 例如 如果我在表中有多个列 其中一列名为 age 该列的数据为 17 而我现在想用 18 替换 17 我会这样做吗下列的 import sqlite3 as lite impo
  • 为什么日期选择器中的日期显示为最后一天?

    我使用 datepicker c 角材料 这是代码 td div class input group div class input group addon div div td
  • centos libgeos 存储库丢失

    在 centos 7 3 上 最小尝试安装 shapely 或 geopandas 需要访问https github com libgeos libgeoslibgeos 尝试通过安装这个sudo yum install libgeos d
  • 没有事件参数的 EventHandler 类型

    当我们想要将数据传递给事件订阅者时 我们使用 EventArgs 或 CustomEventArgs 来实现此目的 Net 提供了一个内置类型 EventHandler 它也使用内置的 EventArgs 类的实例作为参数 当我需要通知订户
  • 将 SimpleMembership 迁移到 Identity 2.0

    这个问题已经演变 所以我更新了标题 这是原来的标题 Identity 2 UserManager Find 抛出 无效的对象名称 dbo ApplicationUser 错误 我正在从 SimpleMembership 转换为 Identi
  • JasperReport 报告中的 Excel 单元格格式

    我正在研究生成 Excel 文件的 JasperReport 报告 由于某种原因 我的单元格格式 类型不正确 例如 我的单元格中有 Date 对象 但是当我生成 Excel 文件时 它将单元格类型设置为数字 或者长整型是单元格中的文本 但单
  • “RxSwift”倒计时器

    我需要一个三十秒计时器RxSwift 这是一个重复的问题 但问题没有明确的答案 现有答案的更好方法 let countDown 15 15 seconds Observable
  • C++ 在派生类中初始化基类的 const int?

    我的基类中有一个常量 int 变量 我想在派生类中初始化响应变量 并使用不同的值 作为参数 这可能吗 这就是我所做的 Base h methods implemented in Base cpp in the actual code cla