当前位置: 首页 > news >正文

C++报错 XX does not name a type;field `XX’ has incomplete type解决方案

C++报错 XX does not name a type;field `XX’ has incomplete type解决方案

两个C++编译错误及解决办法–does not name a type和field `XX’ has incomplete type

编译错误一:XX does not name a type

编译错误二:field `XX’ has incomplete type

编译错误一:XX does not name a type

拿个例子来讲,如果两个类定义如下:

class B{public:B(){}~B(){}private:A a;};class A{public:A(){}~A(){}private:int a;};

编译成则将报一个error:“A does not name a type”

即使clase A和class B分别在两个文件定义,并且在定义B的文件头中#include了class A的头文件也同样会报这个错(这是因为编译和链接之间的先后关系造成的)。

解决该错误的办法:

在class B定义声明之前先声明一下class A, 如下:

class A;class B{public:B(){}~B(){}private:A a;};class A{public:A(){}~A(){}private:int a;};
编译错误二:field `XX’ has incomplete type

同样紧跟上面的例子,通过问题一的办法,第一个错误已经消失,但是马上第二个错误就出现了!还是同一个位置。

这个错误的意思,就是说class B中的XX域的类型不够完整,为什么呢?明明class A后面已经定义好了啊。其实原因还是和前面一样,在class B定义之前,我们也只是对class A进行了声明而并没有进行具体的定义,所以解决该错误的方法是:

将class B定义中的A域改用指针就行了。改正后代码为:

class A;class B{public:B(){}~B(){}private:A *a;};class A{public:A(){}~A(){}private:int a;};

这样,这段简单的代码才能没有错误的通过编译。

在这里插入图片描述

相关文章:

C++报错 XX does not name a type;field `XX’ has incomplete type解决方案

C报错 XX does not name a type;field XX’ has incomplete type解决方案 两个C编译错误及解决办法–does not name a type和field XX’ has incomplete type 编译错误一:XX does not name a type 编译错误二:field XX’ has incomplete t…...

28.利用fminsearch、fminunc 求解最大利润问题(matlab程序)

1.简述 1.无约束(无条件)的最优化 fminunc函数 : - 可用于任意函数求最小值 - 统一求最小值问题 - 如求最大值问题: >对函数取相反数而变成求最小值问题,最后把函数值取反即为函数的最大值。 使用格式如下 1.必须预先把函数存…...

图像 检测 - FCOS: Fully Convolutional One-Stage Object Detection (ICCV 2019)

FCOS: Fully Convolutional One-Stage Object Detection - 全卷积一阶段目标检测(ICCV 2019) 摘要1. 引言2. 相关工作3. 我们的方法3.1 全卷积一阶目标检测器3.2 FCOS的FPN多级预测3.3 FCOS中心度 4. 实验4.1 消融研究4.1.1 FPN多级预测4.1.2 有无中心度…...

C# NDArray System.IO.FileLoadException报错原因分析

C# NDArray System.IO.FileLoadException 报错原因分析: 1.NuGet程序包版本有冲突 2.统一项目版本 1.打开解决方案NuGet程序包设置 2.查看是否有版本冲突 3.统一版本冲突...

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及,上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合,为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…...

05、性能分析思路?

工具操作:包括压力工具、监控工具、剖析工具、调试工具。数值理解:包括上面工具中所有输出的数据。趋势分析、相关性分析、证据链分析:就是理解了工具产生的数值之后,还要把它们的逻辑关系想明白。这才是性能测试分析中最重要的一…...

【编程语言 · C语言 · calloc和realloc】

【编程语言 C语言 calloc和realloc】https://mp.weixin.qq.com/s?__bizMzg4NTE5MDAzOA&mid2247491544&idx1&sn72d8f9931cfa7ce7441a3248475ab619&chksmcfade321f8da6a374a5935bb46441a03a007c0589db6b8afa8c1991854d632a3201553e37b0b&payreadticketHGy…...

机器学习分布式框架ray运行pytorch实例

Ray是一个用于分布式计算的开源框架,它可以有效地实现并行化和分布式训练。下面是使用Ray来实现PyTorch的训练的概括性描述: 安装Ray:首先,需要在计算机上安装Ray。你可以通过pip或conda来安装Ray库。 准备数据:在使用…...

TypeScript 【type】关键字的进阶使用方式

导语: 在前面章节中,我们了解到 TS 中 type 这个关键字,常常被用作于,定义 类型别名,用来简化或复用复杂联合类型的时候使用。同时也了解到 为对象定义约束接口类型 的时候所使用的是 Interfaces。 其实对于前面&#…...

策略路由实现多ISP接入Internet

组网需求&#xff1a; 企业分别从ISP1和ISP2租用了一条链路 PC3用户上网访问Server1时走ISP1PC4用户上网访问Server1时走ISP2 拓扑图 一、ISP1 运营商 R1路由器 <Huawei>sys [Huawei]sys R1 [R1]un in en[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip addr 2.2.2.2 2…...

Socket本质、实战演示两个进程建立TCP连接通信的过程

文章目录 Socket是什么引入面试题, 使你更深刻的理解四元组 Socket网络通信大体流程实战演示TCP连接建立过程需要用到的linux 查看网络的一些命令测试的程序一些准备工作启动服务端, 并没有调用accept启动客户端开启服务accept Socket是什么 通俗来说,Socket是套接字,是一种编…...

java学习路程之篇四、进阶知识、石头迷阵游戏、绘制界面、打乱石头方块、移动业务、游戏判定胜利、统计步数、重新游戏

文章目录 1、绘制界面2、打乱石头方块3、移动业务4、游戏判定胜利5、统计步数6、重新游戏7、完整代码 1、绘制界面 2、打乱石头方块 3、移动业务 4、游戏判定胜利 5、统计步数 6、重新游戏 7、完整代码 java之石头迷阵单击游戏、继承、接口、窗体、事件、组件、按钮、图片...

Git全栈体系(三)

第六章 GitHub 操作 一、创建远程仓库 二、远程仓库操作 命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远…...

JMeter发送get请求并分析返回结果

在实际工作的过程中&#xff0c;我们通常需要模拟接口&#xff0c;来进行接口测试&#xff0c;我们可以通过JMeter、postman等多种工具来进行接口测试&#xff0c;但是工具的如何使用对于我们来说并不是最重要的部分&#xff0c;最重要的是设计接口测试用例的思路与分析结果的能…...

HTML笔记(1)

介绍 浏览器中内置了HTML的解析引擎&#xff0c;通过解析标记语言来展现网页&#xff1b;HTML标签都是预定义好的&#xff1b;Java工程师&#xff1a;后台代码的编写&#xff0c;和数据库打交道&#xff0c;把数据给网页前端的工程师&#xff1b;网页前端工程师&#xff1a;写H…...

重新审视MHA与Transformer

本文将基于PyTorch源码重新审视MultiheadAttention与Transformer。事实上&#xff0c;早在一年前博主就已经分别介绍了两者&#xff1a;各种注意力机制的PyTorch实现、从零开始手写一个Transformer&#xff0c;但当时的实现大部分是基于d2l教程的&#xff0c;这次将基于PyTorch…...

Docker 全栈体系(七)

Docker 体系&#xff08;高级篇&#xff09; 五、Docker-compose容器编排 1. 是什么 Compose 是 Docker 公司推出的一个工具软件&#xff0c;可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml&#xff0c;写好多个容器之间的调…...

【编程范式】聊聊什么是数据类型和范式的本质

什么是编程范式 范式其实就是做事的方式&#xff0c;编程范式可以理解为如何编程&#xff0c;按照什么样的模式或者风格进行编程。 编程范式包含哪些 泛型编程函数式编程面向对象编程编程本质和逻辑编程 虽然有不同的编程范式&#xff0c;但是对于目的来说都是为了解决同一…...

2023-08-01 python根据x轴、y轴坐标(数组)在坐标轴里画出曲线图,python 会调用鼎鼎大名的matlib,用来分析dac 数据

一、python 源码如下 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt#x[0 ,1,2,3,5,6,10] #y[0,0,3,4,5,7,8]# { 0 , 1 , 0x0003 },// 0 # { 0XFFFF * 1 / 10 , 3006 , 0x0a6b },// 1 # { 0XFFFF * 2 / 10 , 599…...

小研究 - 主动式微服务细粒度弹性缩放算法研究(四)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放&#xff0c;忽略了能够充分利用单台服务器资源的细粒度垂直缩放&#xff0c;从而导致资源浪费。为此&#xff0c;本文设计了主动式微服务细粒度弹性缩放算法…...

暑期旅游网络诈骗演化与 AI 赋能防御体系研究

摘要 2026 年暑期旅游旺季到来&#xff0c;在线预订、短信通知、证件办理等全流程成为网络诈骗高发场景。The420.in 于 2026 年 5 月 16 日发布的安全预警显示&#xff0c;虚假通行费钓鱼短信、AI 伪造房源预订、虚假政务证件网站、深度伪造语音与视频四类诈骗呈产业化、规模化…...

Gemini3.1Pro数据投毒检测实战指南

检测 Gemini 3.1 Pro 输出是否受到数据投毒影响&#xff1a;从证据采集、门控验证到回归评测的产品化方案&#xff08;含4周MVP路线图&#xff09;数据投毒&#xff08;Data Poisoning&#xff09;会让模型在“看似正常”的输出中植入特定触发器&#xff1a;当输入触发某种模式…...

轻量级推荐系统MiniOneRec:从协同过滤到服务部署的实践指南

1. 项目概述&#xff1a;一个轻量级、高可用的推荐系统引擎在数据驱动的今天&#xff0c;推荐系统早已不是大型互联网公司的专属。无论是电商平台、内容社区&#xff0c;还是企业内部的知识库、工具集&#xff0c;个性化推荐都已成为提升用户体验和业务效率的核心能力。然而&am…...

修音翻车现场实录:用Melodyne选择工具时,这3个坑我劝你别踩

Melodyne修音避坑指南&#xff1a;选择工具三大致命操作误区解析 第一次用Melodyne修人声时&#xff0c;我对着屏幕上的波形信心满满地拖动音符&#xff0c;结果导出的音频听起来像电子合成器故障——音高扭曲、节奏支离破碎。后来才发现&#xff0c;问题都出在那个看似简单的…...

团队协作福音:如何用EasyYapi插件统一SpringBoot项目的接口文档风格?

团队协作福音&#xff1a;如何用EasyYapi插件统一SpringBoot项目的接口文档风格&#xff1f; 在微服务架构盛行的今天&#xff0c;一个SpringBoot项目往往由多个团队协作开发。当接口数量突破三位数时&#xff0c;文档风格不统一、字段说明缺失等问题会让协作效率直线下降。上周…...

同花顺高级玩法:用Python自动计算并更新‘历史换手衰减系数’,解放双手

同花顺量化实战&#xff1a;Python自动化计算历史换手衰减系数的完整方案 在量化交易领域&#xff0c;筹码分布分析一直是技术派投资者的重要工具。而同花顺软件中的"历史换手衰减系数"参数设置&#xff0c;直接影响着筹码峰分析的准确性。传统的手工计算方式不仅效率…...

终极CoreCycler完全指南:5步掌握CPU单核稳定性测试与精准调校

终极CoreCycler完全指南&#xff1a;5步掌握CPU单核稳定性测试与精准调校 【免费下载链接】corecycler Script to test single core stability, e.g. for PBO & Curve Optimizer on AMD Ryzen or overclocking/undervolting on Intel processors 项目地址: https://gitco…...

基于PIR传感器与LIFX智能灯泡的物联网运动感应照明系统实战

1. 项目概述与核心价值如果你对智能家居自动化感兴趣&#xff0c;并且想亲手打造一个既实用又有趣的照明项目&#xff0c;那么这个基于Adafruit FunHouse和LIFX智能灯泡的运动感应照明系统&#xff0c;绝对是一个绝佳的起点。它不仅仅是一个“开灯关灯”的简单触发器&#xff0…...

DLSS Swapper终极指南:免费开源的游戏DLSS智能管理工具

DLSS Swapper终极指南&#xff1a;免费开源的游戏DLSS智能管理工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款革命性的免费开源工具&#xff0c;专为PC游戏玩家设计&#xff0c;能够智能管理、…...

JetBrains IDE试用期重置终极指南:3种简单方法实现30天无限续杯

JetBrains IDE试用期重置终极指南&#xff1a;3种简单方法实现30天无限续杯 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否在使用IntelliJ IDEA、PyCharm、WebStorm等JetBrains IDE时遇到过试用期突然结束…...