C++不是类的成员未知重写说明符已经定义或声明成员函数没有重载函数可以接受跳过明显的函数体意外的标记位于前的问题解决

[C++]VS环境报错:不是类的成员 未知重写说明符 已经定义或声明成员函数 没有重载函数可以接受 跳过明显的函数体 意外的标记位于";"前 的问题解决

今日在写代码中添加一个类后,触发了诸多错误,且错误均是在编译后产生的

首先,让我们来端详一下这些错误
错误展示1

错误展示2
错误展示3

错误展示4
错误展示5


足足

在这里插入图片描述
170条错误

瞬间就给我搞懵逼了

并且我仔细检查了每一个错误
发现在语法上均没有错误

那么这些问题是如何产生的呢?


通过观察 不难发现 所有错误都是与Line这个类有关的

错误的原因就是头文件的问题
可能的原因有以下几种(由网上冲浪加以总结,由于编者水平有限,可能有误,恳请指出)

  1. 缺少类的头文件
  2. 重复包含头文件
  3. 循环包含头文件
  4. 头文件包含顺序有误

经检查 1无问题

2 由于使用了#pragma once 不会重复包含头文件(或用#ifndef

实际问题出现在3中

Shape类与Line类互相包含了对方的头文件
造成了编译器无休止的彼此包含


解决方法

将Line类写在Shape.h中


参考资料:
“意外的标记位于“;”之前;语法错误 : 缺少“;”(在“*”的前面);缺少类型说明符 - 假定为 int”

关于【error C3646: 未知重写说明符】的若干种可能性

C++类包含问题(重复包含和相互包含)

循环包含

2020.6.6
编者水平有限 希望能对有相同遭遇的朋友有所帮助

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值