从派生 * 到基 * 的转换存在,但无法访问

2024-02-09

尽管 c 是一个结构体并且默认具有公共继承,为什么下面的代码会产生此错误?

struct c 
{
protected:
    int i;
public:
    c(int ii=0):i(ii){}
    virtual c *fun();
};

c* c::fun(){
    cout<<"in c";
    return &c();
}

class d : c
{
 public:
    d(){}
    d* fun()
    {
        i = 9;
        cout<<"in d"<<'\t'<<i;
        return &d();
    }
};


int main()
{
    c *cc;
    d dd;
    cc = &dd;
    cc->fun();
}

你需要:

class d : public c

class继承是private默认情况下。

当您私人继承class or a struct,您明确地说,除其他外,从派生类型直接转换为基类型是不可能的。

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

从派生 * 到基 * 的转换存在,但无法访问 的相关文章

  • 在搜索 List 时,为什么 Enumerable.Any(Func predicate) 比带有 if 语句的 foreach 慢

    最近有件事引起了我的好奇心 Why is the Enumerable Any Func
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • C++ 异步线程同时运行

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

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 即使手动设置显示环境变量后,WSL Ubuntu 也会显示“错误:无法打开显示”

    我在 WSL Ubuntu 上使用 g 我使用 git 克隆了 GLFW 存储库 使用了ccmake命令配置并生成二进制文件 然后使用make在 build 目录中最终创建 a文件 我安装了所有OpenGL相关的库 usr ld 我不记得我
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 使用 CSharpCodeProvider 类编译 C# 7.3 的 C# 编译器版本是什么?

    我想使用 Microsoft CSharp CSharpCodeProvider 类来编译 C 7 3 代码 编译器版本在 IDictionary 中指定 在创建新的 CSharpCodeProvider 时将其作为输入 例如 Compil
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop

随机推荐

  • 从 MYSQL 中的索引号获取工作日名称

    我有一个表 其中存储 0 6 作为工作日值 我想显示工作日名称 例如 如果值为0 它将显示Sunday 如果值为1 它将显示Monday 同样地 是否有内置的 MySQL 函数可以从索引中获取日期名称 提前致谢 正如 Aliminator提
  • 虚拟属性和质量分配

    开发商 我无法理解接下来的情况 例如我有模型 class Pg City lt ActiveRecord Base belongs to country virtual accessors attr accessor population
  • numpy 初学者:使用 numpy.savetxt 编写数组

    我有一个 numpy 直方图 我想将其输出为制表符分隔的文本文件 我的代码如下 targethist np histogram targetlist bins ilist print targethist np savetxt ChrI d
  • cv::Mat 在 Visual C++ Express 2010 中给出错误

    我有 opencv2 1 并在 64 位计算机上使用 Visual C 2010 Express 进行编码 我之前没有遇到问题 我可以使用其他代码 但是下面的简单代码给出了错误 cvMatExample exe 中 0x571365af m
  • 动态规划:城市遍历

    我遇到了这个问题 有两个人 有 n 个城市的有序序列 并且每对城市之间的距离是给定的 您必须将城市划分为两个子序列 不一定是连续的 使得人 A 访问第一个子序列中的所有城市 按顺序 人 B 访问第二个子序列中的所有城市 按顺序 并且使得A
  • 2D 几何库:LGPL 替代 CGAL? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 CGAL 似乎可以满足我需要的一切 并且可以为我即将进行的项目做更多的事情 它可以从弧线段创建多边形并对其运行布尔运算 它已经有了空间排序
  • 如何保持 /*!与 UglifyJS2 的评论?

    默认行为寻找 license or preserve 但很多插件和库仍在使用 用于许可评论块 我该如何使用UglifyJS2 https github com mishoo UglifyJS2 usage保留以以下内容开头的评论 See h
  • 从另一个 Python 脚本运行 Python 脚本时处理异常

    我正在从另一个 python 脚本运行一个 python 脚本 我想知道如何从父 python 脚本中捕获异常 我的父 python 脚本调用另一个 python 脚本 n 次 最终 被调用的脚本将退出并出现 ValueError 异常 我
  • ie7 内联块的替代方案

    对于我的网站 我使用内联块属性 它适用于 mozilla 和 ie8 但在 ie7 中显示为块元素 我怎样才能把它设置正确 看看这个 http foohack com 2007 11 cross browser support for in
  • 无法初始化 Log4j - SLF4JLoggerContextFactory

    我有一个使用 log4j2 运行的 jetty web 应用程序 它没有记录任何内容 并且启动时出现以下错误 错误 StatusLogger LogManager 返回了 org apache logging slf4j SLF4JLogg
  • numpy 从索引列表创建 2D 掩码 [+ 然后从掩码数组中绘制]

    我有一个二维值数组 需要先屏蔽该数组的某些元素 索引取自约 100k 元组对的列表 然后再从剩余元素中抽取随机样本而不进行替换 我需要既快速 高效 希望避免 for 循环 又具有较小内存占用的东西 因为实际上主数组约为 20000 x 20
  • 更改文本区域字段中的字体和字体大小

    使用以下代码示例
  • String.Replace 不替换撇号

    我试图用字符串替换撇号 由于某种原因 该方法只是在字符串中找不到撇号 这是似乎不起作用的 URL news 2012 march cameron s crackdown on whiplash why the minimum speed r
  • Criteriabuilder之类的,如何长时间做到这一点?

    我尝试使用 Criteriabuilder 中的 like 方法来获取基于模式 10 的所有记录 我想要获取 ID 为 101 10002 1003 1000 等的记录 我用过这个代码 Predicate p cb like r
  • 求解受限于给出非负解的时滞微分方程 (DDE) 系统

    在 MATLAB 中 ode45 http www mathworks com help techdoc ref ode45 html有一个参数叫做NonNegative http www mathworks com help techdo
  • Grep 在日期范围内创建的所有文件中

    我使用的是 Ubuntu 操作系统 我想在 2012 年 5 月 28 日到 2012 年 5 月 30 日范围内创建的所有日志文件中 grep 一个单词 例如 XYZ 我怎么做 这与 Banthar 的解决方案略有不同 但它适用于find
  • 如何处理 Go 包中嵌套的“vendor”目录?

    我正在编写一个应用程序并导入一些包B 这个包有vendor目录 其中又包含包C 我也想用那个包C直接在我的应用程序中 所以我决定使用glide包管理器 它同时下载B and C into myapp vendor目录 但保留myapp ve
  • 更改 datetimeoffset 的时区

    我有一个DateTimeOffset值为 11 11 1989 的变量16 00 00 03 30 我可以打电话ToLocalTime 方法 它显示 11 11 198918 00 00 05 30 我在印度 p 我正在寻找这样的东西 va
  • 嵌套通用接口

    我有一个如下所示的接口架构 C NET4 interface A interface B List a a interface C List b b 我是这样实现的 public interface A public interface B
  • 从派生 * 到基 * 的转换存在,但无法访问

    尽管 c 是一个结构体并且默认具有公共继承 为什么下面的代码会产生此错误 struct c protected int i public c int ii 0 i ii virtual c fun c c fun cout lt lt in