为什么我在vs2010上面运行不成功(demo.cpp中加了#include "Teacher.h"),显示成员函数已有主体?

我的代码如下:
demo.cpp
#include <iostream>
#include <stdlib.h>
#include <string>
#include "Teacher.h"
using namespace std;
int main()
{
Teacher t;
t.setName("孔子");
t.setGender("男");
t.setAge(30);
cout<<t.getName ()<<" "<<t.getGender()<<" "<<t.getAge()<<endl;
t.teach ();
system("pause");
return 0;
}
Teacher.h
#include <string>
using namespace std;
class Teacher
{
public: //列出所有的成员函数
void setName(string _name);
string getName();
void setGender(string _gender);
string getGender();
void setAge(int _age);
int getAge();
void teach();
private:
string m_strName;
int m_iAge;
string m_strGender;
};
Teacher.cpp
#include"Teacher.h"
#include <iostream>
#include <string>
using namespace std;
void Teacher::setName(string _name)
{
m_strName=_name;
}
string Teacher::getName ()
{
return m_strName;
}
void Teacher::setGender(string _gender)
{
m_strGender=_gender;
}
string Teacher::getGender()
{
return m_strGender;
}
void Teacher::setAge(int _age)
{
m_iAge=_age;
}
int Teacher::getAge()
{
return m_iAge;
}
void Teacher::teach()
{
cout<<"现在上课"<<endl;
}
void Teacher::setName(string _name)
{
m_strName=_name;
}
string Teacher::getName ()
{
return m_strName;
}
void Teacher::setGender(string _gender)
{
m_strGender=_gender;
}
string Teacher::getGender()
{
return m_strGender;
}
void Teacher::setAge(int _age)
{
m_iAge=_age;
}
int Teacher::getAge()
{
return m_iAge;
}
void Teacher::teach()
{
cout<<"现在上课"<<endl;
}
如图所示