為什么我會報不允許成員函數(shù)重新申明?
代碼如下:
teacher.cpp的代碼:
#include<iostream>
#include<string>
#include"teacher.h"
using namespace std;
void teacher::setName(string name)
{m_strName=name;}
string teacher::getName()
{return m_strName;}
void teacher::setAge(int age)
{m_iAge=age;}
int teacher::getAge()
{return m_iAge;}
teacher::teacher(){
?? m_strName="jim";
?? m_iAge=114;
?? cout<<"teacher()"<<endl;
?
}
teacher::teacher(string name,int age);
int main(){
?teacher t;
?t.setName("kongzi");
?cout<<t.getName()<<endl;
?t.setAge(111);
?cout<<t.getAge()<<endl;
?system("pause");
?return 0;
}
這是·teacher.h的代碼:
#include<string>
using namespace std;
class teacher{
?? public:
??? teacher();
??? teacher(string name,int age);
??? void setName(string name);
??? string getName();
??? void setAge(int age);
??? int getAge();
?? private:
??? string(m_strName);
??? int(m_iAge);
};
這是demo.cpp的代碼:
#include<iostream>
#include<string>
#include"teacher.h"
using namespace std;
int main(void){
?teacher t1;
?teacher t2("merry", 12);
??? cout<<t1.getName()<<t1.getAge()<<endl;
?cout<<t2.getName()<<t2.getAge()<<endl;
}
按照這樣的代碼運行會報如下錯誤:1>d:\vs 2010\project\test8\test8\teacher.cpp(23): error C2761: “{ctor}”: 不允許成員函數(shù)重新聲明
?
就是不知道怎么解決,老師不也在teacher.cpp里面定義了兩個構(gòu)造函數(shù)嗎?有參和無參,怎么我這里定義會顯示是重新申明了?表示不懂
2016-10-28
不好意思,是在teacher.cpp里面把定義teacher::teacher()函數(shù)變成了申明,不應(yīng)該后面加分號,但是我改成定義,去掉分號后,怎么又變成了1>D:\vs 2010\project\test8\Debug\test8.exe : fatal error LNK1169: 找到一個或多個多重定義的符號,又報這個錯誤了,
?
?
teacher::teacher(){
?? m_strName="jim";
?? m_iAge=114;
?? cout<<"teacher()"<<endl;
?
}
teacher::teacher(string name,int age){
? m_strName=name;
? m_iAge=age;?
}
主要就是這段代碼的問題