c++ 如何转发声明一个继承自另一个类的类?

2023-12-06

我创建了一个具有一堆继承类(父类)的类,以便我可以使用多态性,但问题是有两个类相互调用。

因此,我需要转发声明它们,并且我可以转发声明一个类,但是当我转发声明继承的类时,编译器表示它无法将指针从一个类更改为另一个类。

有没有办法对继承的类进行前向声明,以便它声明它是从它继承的? 前任:

class Shape;
class Circle:Shape;

在进行前向声明时,不需要在类名之后指定族谱。

class Shape;
class Circle;
class Rectangle;

当您声明使用继承的类时,编译器会欣赏父类的完整声明。

经验法则是,可以使用前向声明来解析指针和引用声明的类型。任何通过指针或引用访问类元素的代码都需要完整的类声明。

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

c++ 如何转发声明一个继承自另一个类的类? 的相关文章

  • 在 HKCR 中创建新密钥有效,但不起作用

    我有以下代码 它返回 成功 但使用两种不同的工具使用搜索字符串 3BDAAC43 E734 11D5 93AF 00105A990292 搜索注册表不会产生任何结果 RegistryKey RK Registry ClassesRoot C
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 在 javafx 中创建图像覆盖蒙版

    我正在尝试做一件简单的事情 我有一个二值图像 我想要的只是将二值图像叠加在彩色图像上 但是二值图像中的白色像素应该是红色的 黑色像素应该是透明的 我已经习惯了 JavaFx 但我还是坚持使用这个 我知道我可以通过使用 PixelReader
  • Raspberry ALSA 声音输出/输入从机

    我正在尝试设置一台设备用于播放 另一台设备用于捕获 我的nano etc asound conf有这个 pcm default type asym playback pcm plughw 1 1 capture pcm plughw 1 0
  • Celery / Django 单个任务运行多次

    我面临一个问题 我将任务放入队列中并且它正在运行多次 从 celery 日志中我可以看到同一个工作人员正在运行该任务 2014 06 06 15 12 20 731 INFO MainProcess Received task input
  • 使用spring进行Java注解扫描

    我有几个类需要用名称进行注释 因此我将注释定义为 Retention RetentionPolicy RUNTIME Target ElementType TYPE public interface JsonUnmarshallable p
  • Ruby ** 双星运算符

    Ruby 中的 运算符是什么 代码片段 1 5 gt 1 43 67 gt 2769405330765659902380925787724104201956901039505346829415349981622358603023818638
  • IE 对 HTML5 文档类型属性选择器的支持

    w3school 关于属性选择器的章节指出 仅当指定 DOCTYPE 时 IE7 和 IE8 才支持属性选择器 IE7 和 IE8 无法识别 HTML5 文档类型 对吗 那么 这是否意味着如果我使用 HTML5 文档类型 IE7 和 IE8
  • Selenium 与 Python-unittest - 测试返回进程已完成,退出代码为 0,并且不执行任何操作

    有人可以帮助我理解为什么执行以下代码 但没有执行任何操作吗 返回代码为 0 但浏览器未打开或未执行任何操作 值得一提的是 setUp 方法已在其他模块中以相同的方式配置 并且工作正常 请查看最后的回复 import unittest fro
  • 如何翻译 Blazor 组件和 App.razor 中的字符串?

    我想本地化共享组件的字符串 例如 NavMenu razor 或 App razor 页面 我成功地按照中所述翻译了我的页面中的内容 NET Core 通用指令还有更多特定 Blazor 文档 创建具有正确名称的资源文件 例如 PageNa
  • 如何在 thymeleaf 中包含 message.properties

    I am using spring boot with thymeleaf This is my project structure 这是我的应用程序开始课程 EnableAutoConfiguration Configuration Co
  • 查询 documentdb 中的子字段

    例如 我有以下用于收集 交付的文档 doc docid 15 deliverynum 123 text txxxxxx date 2019 07 18T12 37 58Z docid 16 deliverynum 456 text txxx
  • 如何在sqlite中使用填充连接字符串

    我的 sqlite 表中有三列 Column1 Column2 Column3 A 1 1 A 1 2 A 12 2 C 13 2 B 11 2 我需要选择Column1 Column2 Column3 e g A 01 0001 我想用一
  • 在 C 中按值传递结构而不是传递指针有什么缺点吗?

    在 C 中按值传递结构而不是传递指针有什么缺点吗 如果结构体很大 显然会存在复制大量数据的性能问题 但对于较小的结构体 它基本上应该与将多个值传递给函数相同 当用作返回值时 它可能会更有趣 C 函数只有单个返回值 但您通常需要多个返回值 因
  • 如何在不重新加载页面的情况下从数据库获取数据?

    当用户提出任何显示在分区顶部的问题时 我想制作一个常见问题解答面板 而无需重新加载页面 因为我认为我必须每隔几秒就与数据库建立连接 现在的问题是如何在不重新加载页面的情况下建立连接以及如何显示新问题 您有两个选择 Ajax 它允许您使用 J
  • 如何应用 CSS 进行打印?

    我正在尝试在我的页面之一中打印 div 但打印时无法应用 css 在样式标签内写入 media print 不起作用 我应该怎么办 使用以下
  • Java 泛型和 Groovy 重载

    我使用 Groovy JUnit 和 EasyMock 为 Java 应用程序编写单元测试 EasyMock中有几个重载方法capture 已弃用 并附有注释 由于强制擦除更困难 无法在 Java 7 中编译 这些方法将类型的对象作为参数C
  • data.table 聚合操作中的进度条

    ddply has a progress要在运行时获得进度条 是否有等效的data table in R 是的 您可以使用任何您想要的进度状态 library data table dt data table a 1 4 b c a b d
  • 一页上有两个分析

    如何在一个网站上放置两个 GA 代码 我有这个代码 function i s o g r a m i GoogleAnalyticsObject r i r i r function i r q i r q push arguments i
  • 将 NSDictionary 键排序为 NSDate

    我正在使用最新的 SDK 和 XCode 4 2 开发 iOS 4 应用程序 我有一个NSMutableDictionary where keys are NSDate and values are NSMutableString 当我填满
  • 如何在Android上设置语音识别的语言?

    我一直在android中研究语音识别API 发现当语言设置更改时 语音结果会发生变化 有没有办法以编程方式设置它 或者是否打算在语音语言设置屏幕上午餐 或者还有什么 笔记 我尝试额外使用这个意图 intent putExtra Recogn
  • c++ 如何转发声明一个继承自另一个类的类?

    我创建了一个具有一堆继承类 父类 的类 以便我可以使用多态性 但问题是有两个类相互调用 因此 我需要转发声明它们 并且我可以转发声明一个类 但是当我转发声明继承的类时 编译器表示它无法将指针从一个类更改为另一个类 有没有办法对继承的类进行前