請問為什么第二個cout不操作 請問哪里出錯了
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
class Teacher
{
public:
?Teacher(string name="Jim",int age=50);
?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(string name,int age):m_strName(name),m_iAge(age)
{
?cout<<"Teacher(string name,int age)"<<endl;
}
Teacher::Teacher(const Teacher&tea)
{
?cout<<"Teacher::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()
{
?Teacher A;
?cout<<A.getName() <<endl;
?Teacher B=A;
?cout<<B.getName() <<endl;
?return 0;
}
2016-10-19
?
?沒有調用一般構造函數(shù),而是調用了拷貝構造函數(shù)。
其中的知識點你可以仔細看一下拷貝構造函數(shù)一章
2016-10-20
做一下運算符重載也是可以的
2016-10-19
拷貝構造函數(shù)只是打印,并沒有給B賦值, 你可以不寫拷貝構造函數(shù) 就可以了