通过使用范围解析避免多重继承引起的歧义

2023-12-13

这是多重继承的示例。我使用范围解析运算符而不是虚拟类来解决歧义。

struct A 
{
    int i;
};

struct B : A
{};

struct C : A
{};

struct D: B, C 
{
    void f()
    {
        B::i = 10;
    }
    void g()
    {
        std::cout << B::i <<std::endl;
    }
};

int main() 
{
    D d1;
    d1.f();
    d1.g();
    return 0;
}

Is B::i格式良好?


Is B::i格式良好?

是的。最相关的参考是[等级.质量]/1:

如果限定 ID 的嵌套名称说明符指定一个类,则 在中查找嵌套名称说明符后指定的名称 类的范围,除了下面列出的情况。名字 应代表该类别或其其中之一的一名或多名成员 基类.

其中指定您可以命名i由于它是以下组织的成员B的基地。仅在事后检查可访问性,并且在您的情况下它是公开的。

[类.访问.基础]/5

...对成员的访问受到该成员所在类的影响 成员被命名。这个命名类是成员所在的类 名称被查找并找到...此时可以访问成员 m R 当在 N 类中命名时,如果

  • 存在可在 R 处访问的 N 的基类 B,并且当在类 B 中命名时,可在 R 处访问 m。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过使用范围解析避免多重继承引起的歧义 的相关文章

  • 生成多个随机数

    我想生成 25 个唯一的随机数并将它们列在控制台中 数字的长度应至少为 10 个字符 有什么简单的方法可以做到这一点吗 尝试将数字构建为字符串 并使用 HashSet 确保它们是唯一的 Random random new Random Ha
  • 深拷贝和动态转换 unique_ptr

    假设我有一个如下所示的类 class A virtual A class B public A class C public A 我还有一个 unique ptr 向量 它是这样声明的 std vector
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • 局部函数声明有什么用处吗?

    大多数像我这样的 C 程序员都曾犯过以下错误 class C int main C c declares a function c taking no arguments returning a C not as intended by m
  • 在没有 epsilon 的情况下可以将浮点数与 0.0 进行比较吗?

    我知道 要比较两个浮点值 需要使用一些 epsilon 精度 因为它们并不精确 但是 我想知道是否存在边缘情况 我不需要那个 epsilon 特别是 我想知道这样做是否总是安全的 double foo double x if x lt 0
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • 嵌入资源文件的路径

    我的资源文件中有一个图标 我想引用它 这是需要图标文件路径的代码 IWshRuntimeLibrary IWshShortcut MyShortcut MyShortcut IWshRuntimeLibrary IWshShortcut W
  • 无法加载程序集问题

    我收到以下错误 无法加载程序集 错误详细信息 System BadImageFormatException 无法加载文件或程序集 文件 或其依赖项之一 该程序集是由比当前加载的运行时更新的运行时构建的 无法加载 该程序集是使用 Net Fr
  • 如何自定义 Google 测试失败消息?

    我编写了一个如下所示的 Google 测试 它将一些计算值与 CSV 文件中预期存储的值进行比较 class SampleTest public testing Test public void setupFile const std st
  • .NET 5 EF Core SaveChangesAsync 因错误而挂起

    尽管这个问题有很多结果 但没有一个真正给我明确的答案 每次我尝试通过 AddAsync 和 SaveChangesAsync 方法插入错误数据 例如重复的主键 时 我都会看到以下日志 执行 DbCommand 失败 15 毫秒 我还在 SQ
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 您对“大规模 C++ 软件设计”的看法 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 正在阅读亚马逊评论 https rads stackoverflow com amzn click com 0201633620 and ACC
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • valgrind 在 Raspberry Pi 上返回未处理的指令

    我最近一直在尝试在运行 Debian GNU Linux7 0 喘息 的树莓派 型号 b 上使用 valgrind 来调试分段错误 每次我在编译的 C 程序上运行 valgrind 时 都会得到类似以下内容的信息 disInstr arm
  • Type.GetInterfaces() 仅适用于声明的接口

    首先 像这样的问题有很多 也许有些OP甚至在问同样的问题 问题是这些问题的答案 无论是否接受 都没有真正回答这个问题 至少我找不到 如何确定类直接声明的接口 而不是由父级或声明的接口继承的接口 e g interface I interfa
  • 使用多态对象数组进行 JSON 反序列化

    我在涉及多态对象数组的 JSON 反序列化方面遇到问题 我已经尝试过记录的序列化解决方案here https stackoverflow com questions 5186973 json serialization of array w
  • 从对列表创建邻接列表类型结构

    在 C 中 我有 class Pair int val1 int val2 我有一个来自以下来源的配对列表 List
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类

随机推荐

  • PHP 正则表达式在冒号之前转换文本以进行链接

    我需要找到第一次出现的冒号 并获取之前的完整字符串并将其附加到链接中 e g username twitter nice site RT www google com visited 需要转换为 a href http twitter co
  • 用于 Web 开发的 iOS Touch ID

    我目前正在尝试找到一种方法来构建响应式网站 但是一旦网站在 iOS 设备上加载 我想使用新的 iOS Touch ID api 来允许会员登录 我知道当然可以使用 Native 以及 Cordova 来做这样的事情 http cordova
  • 在 pagerAdapter 中的片段之间发送数据

    您好 我正在尝试在两个片段之间发送数据 armarFragment 到 cocinaFragment 但我不知道该怎么做 因为两者都在同一个 Activity tabsActivity 中 该 Activity 实现了 pagerAdapt
  • 位置之前的第一个索引

    我有一个字符串和该字符串中的索引 并且想要获取该索引之前的子字符串的第一个位置 例如 在字符串中 this is a test string that contains other string for testing 是否有一个函数 给定
  • Visual Basic .NET 中的 C 样式指针

    我研究 Visual Basic NET 中的 C 风格指针有一段时间了 我遇到过http support microsoft com kb 199 824 wa wsignin1 0但我不知道这是否正确或如何应用 我已经使用 c 中的程序
  • Angularjs 与 html5Mode 的正常链接

    我正在 html 5 模式下使用 angularjs 它似乎控制了页面上的所有 href 但是 如果我想要链接到应用程序同一域中但实际上不在应用程序中的某些内容 该怎么办 一个例子是 pdf If i do a href pdfurl An
  • 如何使用 Google 地图将地址地理编码为纬度/经度

    我希望能够在谷歌地图上绘制几家公司 并了解我需要对这些公司进行地理编码 我还在地图上的多个标记下方提供了代码 如何对多个公司地址进行地理编码 使用以下地址作为第一个示例 并将其合并到我当前的代码中 我真的需要有人的帮助 因为我无法理解 Go
  • 重构代码以避免反模式

    我有一个 BusinessLayer 项目 其中包含以下代码 域对象是FixedBankAccount 它实现了IBankAccount 存储库被制作为域对象的公共属性 并被制作为接口成员 如何重构它以使存储库不再是接口成员 域对象 Fix
  • 此 C# FluentNHibernate 组件映射的等效 VB.NET 代码是什么?

    我是一名 C 程序员 只能编写 VB NET 代码 在为我当前的客户进一步探索 NHibernate 时 我遇到了 FluentNHibernate 我发现它非常有吸引力 但现在 我想知道如何将组件映射的 C 代码 翻译 为 VB NET
  • c# - 以编程方式将pdf转换为word [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 有谁知道以编程方式将 PD
  • 如何为带有缩略图的纯 CSS/HTML 滑块创建标题,无需 java/jquery

    我正在尝试创建一个滑块 其中包含用于导航的图像缩略图 我还想为每张幻灯片创建一个标题 使其随特定幻灯片一起出现和消失 这就是我现在所拥有的 http jsfiddle net yb02jzbq 源自http thecodeplayer co
  • iOS获取特定的UITableViewCell

    我有一个UIButton在一个习惯中UITableViewCell 单击此按钮会触发事件 myButton addTarget self action selector buttonClicked forControlEvents UICo
  • Python 从类中的另一个函数调用一个函数

    我正在尝试学习 python 但很难理解为什么这个类会抛出错误NameError name self is not defined 我已经关注了如何在类中调用函数 并添加了self 但这没有帮助 这是代码 谁能指出原因 class Back
  • 通过考虑 r (2) 中的分组 Q 矩阵来操作字符向量

    我正在尝试编写基于Group多变的 item map具有项目信息 其中包括显示哪个项目与哪个组关联的 q 矩阵 Group lt c 1 2 3 4 item map lt data frame item id c 21 41 61 72
  • 我想在 php 中 cURL 谷歌搜索结果

    我尝试了以下代码 url http www google co uk q query hl en prmd imvns source lnt tbs ctr countryUK 7CcountryGB cr countryUK 7Ccoun
  • 如何连续改变正弦声音的频率?

    我在用Pygame在窗口中渲染精灵 我想播放正弦声音 其频率取决于y该精灵的位置 我不希望信号相位不连续 实现这一目标的最佳方法是什么 我想出了这个解决方案 改变freq to newfreq然后像这样改变相位 newphase 2 np
  • 如何在 JavaScript 正则表达式中用 (n-1) 次出现的同一字符替换 (n) 次出现的字符

    我的数据是 Hello World I need Hello World 所以基本上 5 次出现的星号被替换为 4 次出现的星号 我怎样才能做到这一点在正则表达式javascript中 注意 星星的数量是动态的 我尝试过此操作 但不确定如何
  • 启动新的 Windows 应用程序:我应该使用 _TCHAR 还是 wchar_t 作为文本?

    我正在用 C 为 Windows 编写一个新的 个人爱好 应用程序 在我之前使用过的低级 Windows 内容中 TCHAR 或只是 TCHAR 用于字符串操作的数组 basic strings 使用有什么好处吗 TCHAR直接使用 Uni
  • LINQ to SQL C# 合并

    给出下表 Length Width Color ID 18 18 blue 1 12 12 red 1 我想生成单列 行 SIZES 18 x 18 12 x 12 我可以在 SQL 中执行此操作 如下所示 DECLARE SIZES VA
  • 通过使用范围解析避免多重继承引起的歧义

    这是多重继承的示例 我使用范围解析运算符而不是虚拟类来解决歧义 struct A int i struct B A struct C A struct D B C void f B i 10 void g std cout lt lt B