C++ 从基类指针访问派生类成员

2023-12-28

如果我分配一个类的对象Derived(基类为Base),并将指向该对象的指针存储在指向基类的变量中,我如何访问该对象的成员Derived class?

这是一个例子:

class Base
{
    public:
    int base_int;
};

class Derived : public Base
{
    public:
    int derived_int;
};

Base* basepointer = new Derived();
basepointer-> //Access derived_int here, is it possible? If so, then how?

不,您无法访问derived_int因为derived_int是其一部分Derived, while basepointer是一个指向Base.

不过你也可以反过来做:

Derived* derivedpointer = new Derived;
derivedpointer->base_int; // You can access this just fine

派生类继承基类的成员,而不是相反。

但是,如果您的basepointer指向一个实例Derived然后你可以通过强制转换来访问它:

Base* basepointer = new Derived;
static_cast<Derived*>(basepointer)->derived_int; // Can now access, because we have a derived pointer

请注意,您需要将继承更改为public first:

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

C++ 从基类指针访问派生类成员 的相关文章

  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 为什么大多数 C 开发人员使用 Define 而不是 const? [复制]

    这个问题在这里已经有答案了 在许多程序中 define与常量具有相同的用途 例如 define FIELD WIDTH 10 const int fieldWidth 10 我通常认为第一种形式优于另一种形式 它依赖于预处理器来处理基本上是
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • strcmp 给出分段错误[重复]

    这个问题在这里已经有答案了 这是我的代码给出分段错误 include
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 使用 wix 安装较新版本的 msi 时从程序和功能中删除程序

    我正在使用 WIX 创建安装程序 msi 当我安装较新版本的应用程序时 我的旧应用程序已安装在计算机上 然后它会删除旧版本的所有文件和程序集并放置较新版本的文件和程序集 但在控制面板的程序和功能中显示旧版本和新版本 我正在使用以下代码进行升
  • jQuery:检查下一个元素是否存在

    有没有办法检查下一个元素是否存在 检查我的代码 if people making of mask ul li current next li null alert Exists else alert Dont exists 我究竟做错了什么
  • 在 C++ 中通过 OpenCV 以非常小的步长平移图像

    我正在以非常小的步长进行图像翻译 例如按 1 1024 在列中翻译 考虑我有以下图像 我在 opencv 中使用 Mat 创建图像 类型为 CV 64F 255 0 0 0 现在 通过在 1 1024 列中进行翻译 我期望得到以下结果 25
  • Eclipse 不使用添加类路径变量中的 jar

    我添加了一个指向 jar 缓存的类路径变量 通过 eclipse 的构建路径 虽然此文件夹显示在 Eclipse 的文件夹视图中 但由于某种原因无法识别其中包含的 jar 例如 当我导入缓存中的 jar 中存在的类 以及添加的类路径变量 时
  • div 内文本中的新行

    当我放置通过 ajax 调用加载的文本时 我遇到了一个小问题 我从文本区域获取内容并将其存储在数据库中 当我想在 div 中显示文本时 它不尊重新行 因此所有文本都是连续的 下面的代码展示了一个小例子 function buttonA cl
  • Eclipse 中“现有连接被远程主机强制关闭”

    我一直在使用 Eclipse 构建 Android 应用程序 并在我的 HTC One X 上测试它们 我从 HTC Sync 安装了驱动程序 并且 Eclipse 是最新的 最近 此连接完全停止工作 计算机 运行 Windows 8 Pr
  • 禁用和启用后退按钮

    在应用程序中 我正在使用 GPS 查找用户位置 在异步预执行方法中 我正在显示一个吐司 我希望在显示吐司时应禁用后退按钮 找到位置后 我想在执行后启用后退按钮 禁用我使用过的后退按钮 但这不起作用 OnKeyListener mainScr
  • 使用 JWT 保护 WebAPI

    我正在尝试编写一个移动应用程序 该应用程序将从基于 webapi 的站点获取数据 该站点应通过 ACS 进行保护 因为可能有多个身份提供商 我的移动应用程序当前正在查询以下网址获取 IP 列表 然后 我允许用户选择 IP 然后使用 Web
  • 错误:R 无法连接到 MySQL

    我昨天将MySQL更新到最新版本8 0 11 并尝试使用RMySQL连接MySQL 但它不起作用 我找不到任何解决方案 My code library RMySQL con lt dbConnect MySQL user hello pas
  • 如何替换va_list中的值?

    我想做一些关于 va list 的练习 这是我的代码 int myscanf char fmt va list ap va start ap fmt vfscanf stdin fmt ap va end ap int main int a
  • 通过 iPhone 应用程序在 Facebook“提要”上发布图片

    我正在使用 ASIHTTPRequest 来处理 Facebook 图形 API 这是我最近在动态上发布图片的一次 所以如果我有一个 ASIFormDataRequest request ASIFormDataRequest request
  • 函数式语言中折叠/归约的实际使用

    Fold aka reduce 被认为是一个非常重要的高阶函数 Map可以表示为fold see here http en wikipedia org wiki Fold 28higher order function 29 List fo
  • 如何在调用下一个回调函数之前添加延迟?

    我正在尝试制作一个 javascript 横幅 我在一个 div 中有 3 个图像 id 为 img1 img2 img3
  • 模板非类型参数

    14 3 2 非类型 非模板模板参数的模板参数应为以下之一 指定具有静态存储持续时间的对象的地址的常量表达式 5 19 外部或内部链接或具有外部或内部链接的功能 在下面显示的代码中 我无法理解为什么不允许 name2 和 name3 作为非
  • Node.js - 将 https.request() 与内部 CA 一起使用

    我该向谁获取 https request 来信任我的内部签名服务器证书 以下是我在 v0 10 25 中运行的代码的快速示例 var options hostname encrypted mydomain local port 443 pa
  • OpenCL 找不到平台?

    我正在尝试将 C API 用于 OpenCL 我已经安装了 NVIDIA 驱动程序 并且已经测试可以运行提供的简单向量加法程序here http www thebigblob com getting started with opencl
  • 实体框架在循环中插入存储过程

    尝试使用实体框架在循环中执行插入存储过程 如下所示 var context new Entities var items context GetAllItems ToList foreach var item in items Other
  • 标签标签中的“for”是什么?

    刚刚跑过一个forHTML 标签中的参数
  • 参数字典包含参数的空条目

    我有两个视图页面使用相同的控制器和模型作为更改页面布局的方式 但我在显示第二个页面时遇到问题 这是我的错误消息 The parameters dictionary contains a null entry for parameter id
  • C++ 从基类指针访问派生类成员

    如果我分配一个类的对象Derived 基类为Base 并将指向该对象的指针存储在指向基类的变量中 我如何访问该对象的成员Derived class 这是一个例子 class Base public int base int class De