C++ 包含类文件后的错误消息(多个定义的符号)
我正在linux mint上使用g++编译器。 我正准备为神经网络做一个课程,我想玩“井字游戏”。 我的标题:C++ 包含类文件后的错误消息(多个定义的符号),c++,class,C++,Class,我正在linux mint上使用g++编译器。 我正准备为神经网络做一个课程,我想玩“井字游戏”。 我的标题: #ifndef tttAi #define tttAi #include <string> class Synaps{ public: explicit Synaps(const std::string& n, double v); void add(double ad); void multi(double mu); void s
#ifndef tttAi
#define tttAi
#include <string>
class Synaps{
public:
explicit Synaps(const std::string& n, double v);
void add(double ad);
void multi(double mu);
void save();
double read();
private:
std::string name;
double Syn_value;
};
#endif
我的职能是:
#include "tttAi.h"
#include <fstream>
#include <string>
Synaps::Synaps(const std::string& n, double v)
:name(n), Syn_value(v){
}
void Synaps::add(double ad) { //change by addition
Syn_value += ad;
}
void Synaps::multi(double multip) { //change by multiplication
Syn_value *= multip;
}
double Synaps::read() {
return Syn_value;
}
下面是我想要它做的:
#include <iostream>
#include "tttAi.h"
#include "tttAi.cpp"
int main() {
Synaps n1n6("n1n6", 75);
n1n6.multi(2);
std::cout << n1n6.read() << '\n';
/*Want it to just output the value of Syn_value Witch at
this point should be 150 if i have done everything right*/
}
使用的命令:g++-Wall-std=c++14*cpp
因此,我认为我会得到的只是控制台输出的150,但在编译时,我得到了这个无休止的错误消息:
希望您知道我做错了什么,欢迎您提出任何意见。问题似乎是在您的main.cpp文件中包含tttAi.cpp。
您不应该包含cpp文件问题似乎是在main.cpp文件中包含tttAi.cpp。
您不应包含cpp文件您多次包含包含定义的cpp文件,即您不应写入
#include "tttAi.cpp"
在main.cpp文件中,因此违反了
请记住,包含文件意味着在包含点复制该文件的内容,因此也会复制您的定义。您多次包含包含定义的cpp文件,即,您不应写入
#include "tttAi.cpp"
在main.cpp文件中,因此违反了
请记住,包含文件意味着在包含点复制该文件的内容,因此也会复制您的定义。您不应包含.cpp文件。相反,编译时只需在命令行中列出它们。不应包括.cpp文件。相反,编译时只需在命令行上列出它们。请复制并粘贴错误消息,而不是发布屏幕截图。请复制并粘贴错误消息,而不是发布屏幕截图。ODR是什么意思?我认为使用一个没有解释的缩写比对一个新手对C++有帮助要更令人困惑。添加了更多的上下文。ODR是什么意思?我认为使用一个没有解释的缩写比对一个新手对C++有帮助要更令人困惑。添加了更多的上下文。