#include
#include
using namespace std;
class Teacher
{public:
Teacher();
Teacher(string name,int age) ;//如果对age进行初始化并且在main函数中实例化 一个 t5(“Vivion”)为什么会报错
Teacher(const Teacher&tea);
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();
private:
string m_strName;
int m_iAge;
} ;
Teacher::Teacher()
{ m_strName="jim";
m_iAge=5;
cout<<"Teacher() "<<endl;
}
Teacher::Teacher(string name,int age)
{ m_strName=name;
m_iAge=age;
cout<<"Teacher(string name,int age)"<<endl;
}
Teacher::Teacher(const Teacher&tea)
{ cout<<"Teacher(const Teacher&tea)"<<endl;
}
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;}
int main(void)
{ Teacher t1;
Teacher t2("merry",15);
Teacher t3("Jame",20);
Teacher t4=t1;
cout<<t1.getName()<<" "<<t1.getAge()<<endl;
cout<<t2.getName()<<" "<<t2.getAge()<<endl;
cout<<t3.getName()<<" "<<t3.getAge()<<endl;
return 0;
}
#if 1
#include
using namespace std;
class Teacher
{
public:
Teacher();
Teacher(string name,int age=0);//如果对age进行初始化并且在main函数中实例化 一个 t5(“Vivion”)为什么会报错
Teacher(const Teacher&tea);
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();
private:
string m_strName;
int m_iAge;
};
Teacher::Teacher()
{
m_strName="jim";
m_iAge=5;
cout<<"Teacher() "<<endl;
}
Teacher::Teacher(string name,int age)
{
m_strName=name;
m_iAge=age;
cout<<"Teacher(string name,int age)"<<endl;
}
Teacher::Teacher(const Teacher&tea)
{
cout<<"Teacher(const Teacher&tea)"<<endl;
}
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;}
int main(void)
{
Teacher t1;
Teacher t2("merry",15);
Teacher t3("Jame",20);
Teacher t4=t1;
Teacher t5 = ("sds");
return 0;
}
#endif
以上是我的代码,运行没有问题,不知道你是怎么去写的?你是不是给函数声明和定义都写了默认参数?那样的话会报参数重定义错误。
不太理解你的意思 如果你是说在构造函数里给age赋默认值的话,你这个情况应该是可以通过的
Teacher::Teacher(const Teacher&tea)
{
m_strName=tea.m_strName;
m_iAge=tea.m_iAge;
cout<<"Teacher(const Teacher&tea)"<<endl;
}
CString对象不能直接用cout输出。
cout<<t1.getName()