为什么我无法使用子类的指针访问基类的公共函数?

2023-12-06

我不知道为什么我收到“错误 C2660:'SubClass::Data':函数不接受 2 个参数”。当我尝试编译我的项目时。

我有一个带有名为 data 的函数的基类。该函数采用一个参数,Data 的重载采用 2 个参数。 在我的子类中,我重写了带有 1 个参数的数据函数。现在,当我尝试从指向子类的指针调用数据重载时,我收到上述编译错误。

class Base : public CDocument
{
public:
   virtual CString& Data( UINT index);      
   CString Data(UINT index, int pos);   
};

class SubClass : public Base
{
public:
   virtual CString& Data(UINT index);       
};

Void SomeOtherFunction()
{
   subType* test = new subType();
   test->Data( 1, 1);// will not compile
   ((Base*)test)->Data(1,1); // compiles with fine.
}

C++ 编程语言作者:比亚恩·斯特鲁斯特鲁普 (Bjarne Stroustrup)p.392,第二版):

15.2.2 继承和使用声明
重载解析不适用于不同的类范围(第 7.4 节)……

您可以使用限定名称访问它:

void SomeOtherFunction()
{
  SubClass* test = new SubClass();

  test->Base::Data(1, 1);
}

或者添加一个 using 声明SubClass:

class SubClass : public Base
{
  public:
  using Base::Data;
  virtual CString& Data( UINT index);
};

void SomeOtherFunction()
{
  SubClass* test = new SubClass();

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

为什么我无法使用子类的指针访问基类的公共函数? 的相关文章

随机推荐

  • Delphi 10.3.3 未能通过 macOS 公证

    我的程序在Delphi 10 3 2中经过公证 但在10 3 3中失败 PAClient 退出并显示代码 1 是否有日志可以帮助我诊断问题 如果是这样 我该如何找到它 这是之后的整个错误 Connecting to 192 168 1 23
  • 为什么 int[] 上的 Arrays.asList 返回 List,而不是 List

    考虑这段代码 int tcc 1 2 3 ArrayList
  • Javascript 设置打印样式表

    如何修改打印样式表对象的样式 我正在使用 jQuery 如果这有帮助的话 我基本上想设置一个对象的 css 属性 但该属性仅适用于打印 而不适用于屏幕 例如 myobject css background white print 这个问题有
  • 如何使用timeit模块

    我该如何使用timeit比较我自己的功能的性能 例如 insertion sort and tim sort 如果你想使用timeit在交互式 Python 会话中 有两个方便的选项 Use the IPython壳 其特点是方便 time
  • 从轮廓中删除图例

    这是从R获得的图片 代码如下 我想将其导出为 PDF 格式 不过 我想首先删除右侧的图例栏 据我所知 没有可选参数来控制这个条形图例 你会怎么做 library gplots f lt function x y theta num lt x
  • SimpleDateFormat 抛出 ParseException 错误偏移量为 0

    下面的代码有什么问题 它抛出一个 ParseException 错误偏移量为 0 final DateFormat df new SimpleDateFormat EEE MMM dd HH mm ss yyyy df parse Thu
  • PrimeFaces p:editor 基于什么?

    我想向 PrimeFaces 添加一些客户端功能p editor 但由于某种原因 我无法发现他们用来构建组件的 JavaScript 客户端代码 有人能指点我吗 附 我想做的两件事是使组件可调整大小 PrimeFaces 不支持 并且我想添
  • 多态性和接口 - 澄清?

    迂腐的问题 根据维基百科多态性有 3 种类型 特设多态性 指的是可以应用于参数的多态函数 不同的类型 但根据类型的不同 其行为也不同 它们所适用的论点 换句话说 重载 function Add x y Integer Integer fun
  • 减去 Pandas 或 Pyspark Dataframe 中的连续列

    我想在 pandas 或 pyspark 数据框中执行以下操作 但我仍然没有找到解决方案 我想从数据框中的连续列中减去值 我所描述的操作如下图所示 请记住 输出数据帧的第一列不会有任何值 因为输入表中的第一列不能被其前一列减去 因为它不存在
  • 如何使用 gfortran-10 构建 MPICH?

    TL DR 如何使用 gfortran 10 gcc 10 和 g 10 构建 MPICH 背景 我想用 grortran 10 构建 MPICH以便能够使用最新的 MPI 绑定 但我还没能做到 尝试在 Ubuntu 上通过 apt 安装
  • 是否有相当于“az rest”的PowerShell?

    我最近发现了az rest命令 它允许我执行经过身份验证的 REST 命令 而不必担心获取令牌 https www codeisahighway com native azure rest api calls now available i
  • Google OAuth Android 的重定向 url

    从未真正使用过 OAuth 现在尝试实现它 我想从 google 和 facebook 获取访问令牌和配置文件数据 使用 Xamarin Auth 使用 Facebook 没有问题 我指定 http www facebook com con
  • boost图形库定向多图edge_range错误

    我有一个有向多重图 其顶点为 A C 边为 E1 E4 A E1 gt B A E2 gt B A E3 gt B B E4 gt C 我想迭代连接 A 和 B 的边 在 BGL 中 我将其表达为 include
  • 将整数拆分为数字的最快方法是什么?

    我做了很多操作 将数字分割成单独的数字 将数字放入 ArrayList 中 并将这些数字一个接一个地传递到其他 ArrayList 进行进一步操作 直到 tempList 为空 然后进入下一个比前一个更大的数字 我想知道哪种方法更快 两种方
  • PHP SimpleXML 中的 XML 到 JSON 转换

    data
  • PHP 图片上传检查尺寸

    图片上传后如何查看尺寸 如果它与我想要的尺寸不符 请将其删除吗 因此 经过深入研究 我发现 PHP 无法处理维度 我遵循的解决方案是 将文件上传到服务器 使用新字符串并检查 如果有则删除或继续上传 宽度和高度不匹配 这是我的代码 有人可以告
  • 如何在 ASP.NET 中返回图像作为响应

    我如何将 http 处理程序响应投射到图像 我创建了一个处理程序 如下所示 它在图像中进行一些操作 var absolutePath context Server MapPath imagePath var originalImage Im
  • 如何从url加载UIImage?

    我有以下问题 致命错误 在解包可选值时意外发现 nil IBOutlet weak var DetailImageView1 UIImageView IBOutlet weak var DetailLabel UILabel IBOutle
  • 您只在输出上运行 htmlspecialchars() 还是还执行其他功能?

    输出用户输入时 是否只使用htmlspecialchars 或者您还运行哪些函数 操作 方法 我正在寻找也能处理 XSS 的东西 我想知道是否应该编写一个在输出上转义用户输入的函数 或者只是使用htmlspecialchars 我正在寻找一
  • 为什么我无法使用子类的指针访问基类的公共函数?

    我不知道为什么我收到 错误 C2660 SubClass Data 函数不接受 2 个参数 当我尝试编译我的项目时 我有一个带有名为 data 的函数的基类 该函数采用一个参数 Data 的重载采用 2 个参数 在我的子类中 我重写了带有