调用虚拟成员类的方法

2024-02-17

我知道该怎样virtual在成员函数的上下文中工作,但我在网上看到一篇关于虚拟成员类的文章,这让我感到困惑。

我找到的例子是这样的:

class Machine
{
    void run () {}

    virtual class Parts
    {
    };
};

// The inner class "Parts" of the class "Machine" may return the number of wheels the machine has.
class Car: public Machine
{
    void run() { 
        cout << "The car is running." << endl; 
    }
    class Parts
    {
        int get_Wheels () {
            cout << "A car has 4 wheels." << endl;
            return 4;
        }
        string get_Fuel_Type () {
            cout << "A car uses gasoline for fuel." << endl;
            return "gasoline";
        }
    };
};

文章位于https://en.wikipedia.org/wiki/Virtual_class https://en.wikipedia.org/wiki/Virtual_class claims:

任何 Machine 类的对象都可以用同样的方式访问。程序员可以询问轮子的数量(通过调用 get_Wheels()),而无需知道它是什么类型的机器、该机器有多少个轮子或机器的所有可能类型。像 get_Fuel_Type() 这样的函数可以由派生类 Car 添加到虚拟类 Parts 中。

怎样才能打电话get_Wheels()或成员类中的任何其他函数Parts from a Machine*?看来你必须知道什么样的Machine在可以打电话之前你有get_wheels()因为你不能保证该函数有一个实现。


您发布的代码不是 C++,因为该语言不支持虚拟课程在你描述的概念中。

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

调用虚拟成员类的方法 的相关文章

  • C# 中直接从 URL 获取图像尺寸

    我正在尝试使用以下代码直接从网络上获取图片的尺寸 string image http www hephaestusproject com csharp3 png byte imageData new WebClient DownloadDa
  • 扩展多个类

    我知道 Java 不支持多重继承 因为不允许扩展多个类 我只是想知道我的问题是否有解决方法 我有一个名为CustomAction需要扩展两个抽象类 BaseAction and QuoteBaseAction 我无法更改这些抽象类中的任何一
  • 是否有可能将 *.pdb 文件包含到发布版本中以查看错误行号?

    我做了一个项目 所有设置都是默认的 当我在调试模式 构建配置 调试 下运行它并遇到异常时 它转储到我的自定义日志记录机制 其中包含错误行号 但是当我运行发布构建时 记录相同的异常 没有行号 只有方法抛出和记录调用堆栈 是否有可能在发布配置
  • JetBrains Rider 针对 4.5 框架,无法切换到 4.7

    基本上 当尝试添加不支持旧框架的 NuGet 包时 会出现错误 但是在项目配置中只有 4 5 可用 在项目创建过程中 不存在选择目标的选项 有什么方法可以正确配置它吗 I haven t found out how to set up NE
  • 如何访问带有美元符号的 PHP 对象属性?

    我有一个 PHP 对象 其属性中有一个美元 符号 如何访问该属性的内容 例子 echo object gt variable Ok echo object gt variable WithDollar Syntax error With 变
  • 显示带有 id 的内部连接的名称[重复]

    这个问题在这里已经有答案了 我有这个查询 select from countrysegments inner join country on countrysegments country id country id inner join
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • AcceptSocket 超时?

    是否有可能AcceptSocket on a TcpListener具有超时的对象 以便它偶尔被中断 TcpListener server new TcpListener localIP port server Start while sh
  • 多线程 - 比单线程慢

    当我使用多个线程而不是单线程运行程序时 它会变慢 不是应该更快吗 该程序应该遍历从起始目录开始的所有目录 并查找并打印所有名为 X 的文件 代码如下 while done pthread mutex lock lock if list is
  • C#生成的csv文件通过电子邮件发送嵌入到Lotus Note中电子邮件的底部

    我遇到了一个奇怪的问题 即使用 NET SmtpClient 通过电子邮件发送的 CSV 附件出现在电子邮件底部 而不是 Lotus Note 中的附件 我只是不知道如何解决这个问题 而且我无法访问客户端计算机 这使得调试非常困难 我可以采
  • 主构造函数不再在 VS2015 中编译

    直到今天 我可以使用主构造函数 例如 public class Test string text private string mText text 为了能够做到这一点 在以前的 Visual Studio CTP 中 我必须将其添加到 c
  • 如何使用 C# 将表格粘贴到 Ms-Word 文档的末尾

    我有一个预制的 Word 模板 其中有一个表格 我想打开它 然后在文档末尾添加 粘贴 另一个表格 问题是它不会转到文档的末尾 而是将新表格粘贴到原始表格的第一个单元格中 任何帮助将不胜感激 previous code copied a ta
  • 模板定义中的友元函数

    我的问题有点相关this https stackoverflow com questions 1297609 overloading friend operator for template class one 我想重载某些类的运算符 te
  • 如何在 SQLite 中检查数据库是否存在 C#

    我目前正在用 C 编写一个应用程序 并使用 sqlite 作为嵌入式数据库 我的应用程序在启动时创建一个新数据库 但如何让它检查数据库是否存在 如果它确实存在 我如何让它使用它 如果不存在如何创建一个新数据库 这是我到目前为止所拥有的 pr
  • 动态菜单创建IoC

    我想知道是否有人知道我如何创建如何使用 AutoFac 之类的东西来让我动态地允许 dll 创建自己的表单和菜单项以在运行时调用它们 所以如果我有一个 员工 dll 新入门表格 证书表格 供应商 dll 供应商详细信息来自 产品形态 在我的
  • 如何使 WinForms UserControl 填充其容器的大小

    我正在尝试创建一个多布局主屏幕应用程序 我在顶部有一些按钮链接到应用程序的主要部分 例如模型中每个实体的管理窗口 单击这些按钮中的任何一个都会在面板中显示关联的用户控件 面板包含用户控件 而用户控件又包含用户界面 WinForms User
  • 在 C# 窗口应用程序中运行 C/C++ 控制台应用程序?

    现在 我想开发一个简单的应用程序 因此我决定最快的编码方式是 C NET 但现在 我很难实现我需要的功能之一 我想做的是在 C 应用程序的窗口内运行 C C 控制台应用程序 就像在虚幻前端中一样 添加一点通信方式 以便我可以为控制台应用程序
  • boost::spirit::qi::语法和可变参数模板

    我在使用可变参数模板定义语法时面临一个问题 我首先定义一些包含在某些结构中的简单语法 例如纬度 经度 如下所示 include
  • execlp() 系统调用输出错误

    这个非常简单的例子exec 系统调用 在这里 我试图打电话execlp 两次 但是 我没有得到例外的输出 它仅显示当前目录的第一次调用的输出 include
  • 线程安全的有限大小队列,不使用锁

    我正在尝试编写一个主题队列 但遇到死锁和其他多线程问题 我想用Interlocked CompareExchange避免lock用法 但这段代码并没有按预期工作 它只是擦除整个队列 我在这里做错了什么 public class FixedS

随机推荐

  • Windbg:psscor4 不起作用

    我搜索并尝试了很多东西 但无法让 psscor4 正常工作 当我调用 threads 我总是得到 请求ThreadStore失败 我检查的内容如下 我有一个为 X86 平台编译的 NET 4 应用程序 我使用的是Windbg版本6 2 92
  • 两组之间均匀分布的数字 (Vectorize LINSPACE) - MATLAB

    如何定义矩阵M根据M a b a 5 b from a to b分 5 步 当a and b是向量或集合 更具体地说 每一行i in M第一个值应该等于a i 和最后的值b i 其间有 5 个相等的步骤 例如 如果我有 a 0 b 10 0
  • 如何将两个 PDF 页面拼接在一起成为一张大页面?

    我有两张 36 x 48 海报 LaTeX 我想将其附加到一张 72 x 48 海报中 垂直堆叠 浏览 SO 和 GS 文档 我没有任何线索 我不是 CLI 向导 我怎样才能做到这一点 此外 该过程不应有损地压缩光栅图像 因为这将以 240
  • switch 似乎比 if 慢

    我很好奇速度switch 相信它 非常 快 但我有一个测试用例 似乎表明单个开关的速度大约与 4 一样快if测试 当我预期 没有充分的理由 它会像 1 次测试一样快 这是我写的两个方法来比较switch with if public sta
  • 挑选一个删除文件的提交

    我需要合并几个存储库 每个存储库都是从TFS http en wikipedia org wiki Team Foundation Server 合而为一 为此 我使用 gitcherry pick 命令 该命令适用于某些提交 但不适用于其
  • 缺少 Google 地图 API V2 google-play-services_lib.jar

    I just imported an example of the google map api V2 for android to test It s missing the google play services lib jar I
  • 按 xml 字母顺序对数据进行排序

    输入 XML
  • 如何配置 django-uploadify 仅用于视频上传?

    我想用django uploadify https github com tstone django uploadify仅上传视频 我只希望它仅上传视频 所有类型的视频 或至少所有类型的流行视频格式 到目前为止 我添加了uploadify
  • 为什么将 (Object)null 结果转换为非空?

    我使用 java 7 并创建一个 varargs 方法 public class JavaApplicationTest param args the command line arguments public static void ma
  • R Markdown pdf部分彩色单元格背景(数据栏)

    Excel 有一个称为 数据栏 的功能 它允许根据具有相应长度的单元格值进行条件格式设置 此功能可以通过 R 中的 formattable 使用格式化程序和 color bar 来完成 然而 这样做的结果是一个 html 小部件 无法在 p
  • 为什么在目录上调用 File.listFiles 时可以返回 null?

    我正在创建一个 Android 应用程序 我想列出目录中的文件 我通过调用来做到这一点 File files path listFiles new CustomFileFilter path is a File对象 通过调用创建 File
  • 在三星设备上继续运行时异常:android.view.DisplayListCanvas.throwIfCannotDraw

    我在 Play 商店控制台上发生多次崩溃 我已经检查了可绘制文件夹中的所有图像 这对我来说似乎没问题 因为我怀疑这可能会导致问题 据报道 它主要在三星设备上崩溃 请指出发生了什么错误 对于背景图像 我也使用这个尺寸 高清 480 800 x
  • ngAnimate CSS 动画不适用于 ng-show 和 ng-hide

    DEMO http plnkr co edit cPDUWO p preview http plnkr co edit cPDUWO p preview 我在页面上显示了 2 个选中的复选框和 2 个小部件 单击复选框将使用ng show
  • 签署 F# 程序集(强名称组件)

    我在 CodeProject 上找到了这篇文章 http www codeproject com Articles 512956 NET Shell Extensions Shell Context Menus http www codep
  • python 中的“is”是如何工作的?

    请有人解释一下如何在 if 条件下使用 is 我正在使用分数模块 但遇到了一些麻烦 gt gt gt Fraction 0 1 is 0 False gt gt gt float Fraction 0 1 0 0 gt gt gt floa
  • 如何使用 IDisposable 修复内存泄漏

    我有一个 net 应用程序似乎存在内存泄漏问题 net 服务启动时大约需要 100MB 内存 但在负载下它会达到大约 400 500MB 我的大多数类都没有非托管资源 并且那些已经实现了 IDisposable 的类 所以我的问题是在我的课
  • 延迟加载加载图像后如何触发事件?

    我有需要绝对定位的图像 以便图像的中心位于其父 div 的中心 我已经有执行此操作的代码 我最近添加了延迟加载插件 它按预期工作 但我需要一种触发图像居中代码的方法after延迟加载已加载and图像淡入 我当前的代码基本上是这样的 jQue
  • 更改现有应用程序的证书指纹

    我有一个已发布到 Google Play 的现有应用程序 一切都很好 直到我换了一台电脑并且我的 sha1 指纹发生了变化 有没有可能的方法来更改 google play 开发者控制台中现有应用程序的 sha1 如果没有 我该如何处理 谢谢
  • 在 numpy 中乘以对数概率矩阵的数值稳定方法

    我需要获取包含对数概率的两个 NumPy 矩阵 或其他二维数组 的矩阵乘积 天真的方式np log np dot np exp a np exp b 由于明显的原因而不是首选 Using from scipy misc import log
  • 调用虚拟成员类的方法

    我知道该怎样virtual在成员函数的上下文中工作 但我在网上看到一篇关于虚拟成员类的文章 这让我感到困惑 我找到的例子是这样的 class Machine void run virtual class Parts The inner cl