(C++)error:redefinition of ‘class XXX‘

这篇具有很好参考价值的文章主要介绍了(C++)error:redefinition of ‘class XXX‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023年5月28日,周日早上:

今天早上写麻雀键值数据库时,编译代码的时候出现了这个错误


出现错误的原因:

你在定义你自己的头文件时,没有采用“Include Guards”(或者叫Head Guards)来避免头文件被重复包含。

有时候,在不同的源文件中都需要包含同一个头文件,这个头文件可能包含多个类的定义和其他一些代码。但是,如果源文件在编译时都包含了该头文件,则最终链接将产生重复符号错误(例如符号名称相同但地址不同的函数)。

解决办法:

把你的头文件的内容写在下面的代码中:

//下面是你的头文件的名字的大写形式
#ifndef YOURHEADFILENAME_H   //如果头文件没定义过,就执行下面的#define和endif之前的内容
#define YOURHEADFILENAME_H


//你的头文件的内容
class YourClass{

};

#endif

其实就是把整个头文件的内容包括在了ifndef...endif中,如果头文件没定义过,就执行define和define...endif中间的内容;如果头文件定义过了,就跳过整个ifndef...endif中间的内容,达到了当多个源文件都包含这个头文件时编译器编译时不会重复定义这个头文件的效果。

举例说明:

现在我要自定义一个叫做Car.h的头文件文章来源地址https://www.toymoban.com/news/detail-461999.html

#ifndef CAR_H
#define CAR_H

#include<iostream>

class Car{

private:
    std::string color;
    std::string owner;
};

#endif

到了这里,关于(C++)error:redefinition of ‘class XXX‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Vue warn]: Error in render: “TypeError: Cannot read property ‘ xxx ‘ of undefined“报错原因和解决

    遇到问题: 能够正常渲染出界面,但控制台仍然报出“Error in render: \\\"TypeError: Cannot read property ‘0’ of undefined”错误 原因: vuex中state管理加载的数据,异步调用显示,然后vue渲染机制 异步数据先显示初始数据,再显示带数据的数据,所以上来加载时候还是一个空对象,当渲

    2024年02月11日
    浏览(49)
  • Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed;

    更新更高版本的SpringBoot依赖解决了 来自GitHub上面的GitHub - echisan/springboot-jwt-demo: 这是一个使用了springboot+springSecurity+jwt实现的基于token的权限管理的一个demo项目,本地启动后报错 完整报错信息如下 提示信息里有 Hibernate 应该和数据库持久层框架有关,项目用的是 jpa ,底层是

    2024年02月15日
    浏览(43)
  • K8S学习指南(28)-k8s存储对象Storage Classes

    随着云原生技术的飞速发展,Kubernetes(简称K8s)已成为容器编排的事实标准,为开发者提供了一个强大而灵活的平台。在Kubernetes中,存储管理是一个至关重要的方面,而Storage Classes(存储类)则是其中一个关键概念。本文将深入探讨K8s中的Storage Classes,详细介绍其原理、用

    2024年02月03日
    浏览(42)
  • Mybatis报错:There is no getter for property named ‘xxx‘ in ‘class xxx 的解决办法

    在mybatis中遇到这样的报错,There is no getter for property named ‘xxx’ in \\\'class xxx ,这篇博客给出了解决办法。 There is no getter for property named ‘username’ in ‘class com.zxy.pojo.User’ 最先想着是不是User实体类没有写 Getter and Setter 方法,可是发现写了。 发现数据库表字段 category_id 与实体

    2024年02月03日
    浏览(55)
  • 【scala】编译build报错 “xxx is not an enclosing class“

    private[xxx]是访问权限控制在xxxx包的意思。 解决办法: 把[sources]删掉,或者改成和包名一致即可。

    2024年01月23日
    浏览(54)
  • PyTorch报错shape ‘[16, 1, 28, 28]‘ is invalid for input of size 6272?尝试设置-1

    框架使用过程中的问题首先要注意版本发布时间造成方法弃用 当你在CSDN等网站查找不到最新版本框架的问题解决,别迟疑,马上去Goole 语言问题比框架问题好解决 如果本篇debug博客解决了你的问题,不妨留下你的👍 欢迎关注博主,查看更多c/c++/JAVA/算法/框架知识 PyTorch 使用

    2024年02月02日
    浏览(46)
  • Python 抽象属性中发生的错误 TypeError: Can‘t instantiate abstract class XXX with abstract methods xxx

    本篇文章我们介绍一个和抽象属性相关的错误, TypeError: Can’t instantiate abstract class Bike with abstract methods mileage 。 然后将介绍使用 abc 或抽象基类模块在 Python 中创建具有抽象属性的类。 如果在我们写代码的过程中产生了错误 TypeError: Can’t instantiate abstract class XXX with abstract

    2024年02月06日
    浏览(57)
  • Pod install 报错 Undefined symbol: _OBJC_CLASS_$_xxx 的解决方法

    背景:更换新电脑后,将旧电脑数据迁移 同步到新电脑,处于异常报错,由于项目为Flutter混合项目,在connectivity文件报错 报错: 以前运行报错 Undefined symbol: OBJC_CLASS$_xxx 时,通常都是找不到相应文件的路径导致,解决办法就是去Build Settings 中的文件引用Compile Sources中 重新引

    2024年02月17日
    浏览(46)
  • Unity捕获Curl error 28的办法

    Unity的UnityWebRequest如果设置了timeout,在超时后会有一个 Curl error 28 的报错,很是讨厌,强迫症患者可以用下面的办法过滤掉。 核心思想就是不用timeout,直接3秒后就判断就是下载到了。

    2024年02月13日
    浏览(35)
  • 学习记录:2023.4.28

    1、SVG学习: 百度百科:SVG是可缩放矢量图形,是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。应该是一种开放标准的矢量图形语言,可让你设计激动人心的、高分辨率的Web图形页面。用户可

    2024年02月01日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包