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中间的内容,达到了当多个源文件都包含这个头文件时编译器编译时不会重复定义这个头文件的效果。文章来源:https://www.toymoban.com/news/detail-461999.html
举例说明:
现在我要自定义一个叫做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模板网!