一个关于重复定义的问题
小弟我建了一个C++工程,里面包含3个文件newh.h, newfun.cpp, newmain.cpp,其内容如下:
newh.h
//-----------
#ifndef MYTEST
#define MYTEST
#include <iostream>
using namespace std;
class myTTT
{
int a;
public:
void Display();
myTTT(){a = 1;}
};
void myTTT::Display()
{
cout << "You are here, a = " << a << "\n";
}
#endif
//********************
newfun.cpp
//**********This file is empty except one line
#include "newh.h"
//********************
newmain.cpp
//****************
#include "newh.h"
int main()
{
myTTT b;
b.Display();
system("pause");
return 0;
}
我编译的时候,会得到如下信息: multiple definition of `myTTT::Display()' ,就是说‘myTTT::Display()' 重复定义了。我不知道为什么。如果把myTTT::Display()的定义从newh.h文件中移到newfun.cpp中,就可以编译成功。
不要问我为什么要放一个空文件newfun.cpp在这儿。我这么做这是为了测试。我上网找了好长时间也没找到答案,希望能有大侠指教。