为了账号安全,请及时绑定邮箱和手机立即绑定

请问为什么第二个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;
}


正在回答

3 回答

 

Teacher B = A;

 没有调用一般构造函数,而是调用了拷贝构造函数。

其中的知识点你可以仔细看一下拷贝构造函数一章

0 回复 有任何疑惑可以回复我~
#1

阿乐2 提问者

非常感谢!
2016-10-22 回复 有任何疑惑可以回复我~

做一下运算符重载也是可以的

0 回复 有任何疑惑可以回复我~

拷贝构造函数只是打印,并没有给B赋值, 你可以不写拷贝构造函数 就可以了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

请问为什么第二个cout不操作 请问哪里出错了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号