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

求问关于C++ 拷贝构造函数 小程序问题?

求问关于C++ 拷贝构造函数 小程序问题?

慕容森 2021-10-05 11:07:09
#include "stdafx.h"#include "iostream.h"class CAT{int *itsAge;public:CAT():itsAge(new int(5)){}//增加拷贝构造函数CAT(CAT &c){*itsAge=c.*itsAge;//把c中的itsAge指针指向的内容赋给当前对象的*itsAge}~CAT(){ delete itsAge;}int GetAge() const {return *itsAge;}void setAge(int age){*itsAge=age;}};void main(){CAT fri;cout<<"1111111 "<<fri.GetAge()<<endl;fri.setAge(6);CAT boot(fri);cout<<"1111112 "<<fri.GetAge()<<endl;cout<<"2222221 "<<boot.GetAge()<<endl;fri.setAge(7);cout<<"1111113 "<<fri.GetAge()<<endl;cout<<"2222222 "<<boot.GetAge()<<endl;}程序目的是通过添加拷贝构造函数来使原来的程序正常化。编译时出错了..希望大家帮忙看看错在哪了...
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

//#include "stdafx.h"
#include "iostream.h"

class CAT
{
int *itsAge;
public:
CAT():itsAge(new int(5)){}
//增加拷贝构造函数
CAT(CAT &c)
{
itsAge = new int(0);
*itsAge=*c.itsAge;//把c中的itsAge指针指向的内容赋给当前对象的*itsAge
}
~CAT()
{
delete itsAge;
}
int GetAge() const {return *itsAge;}
void setAge(int age)
{
*itsAge=age;
}
};
void main()
{
CAT fri;
cout<<"1111111 "<<fri.GetAge()<<endl;
fri.setAge(6);
CAT boot(fri);
cout<<"1111112 "<<fri.GetAge()<<endl;
cout<<"2222221 "<<boot.GetAge()<<endl;
fri.setAge(7);
cout<<"1111113 "<<fri.GetAge()<<endl;
cout<<"2222222 "<<boot.GetAge()<<endl;
}



查看完整回答
反对 回复 2021-10-10
?
Qyouu

TA贡献1786条经验 获得超11个赞

//#include
"stdafx.h"
#include
"iostream.h"
class
CAT
{
int
*itsAge;
public:
CAT():itsAge(new
int(5)){}
//增加拷贝构造函数
CAT(CAT
&c)
{
itsAge
=
new
int(0);
*itsAge=*c.itsAge;//把c中的itsAge指针指向的内容赋给当前对象的*itsAge
}
~CAT()
{
delete
itsAge;
}
int
GetAge()
const
{return
*itsAge;}
void
setAge(int
age)
{
*itsAge=age;
}
};
void
main()
{
CAT
fri;
cout<<"1111111
"<<fri.GetAge()<<endl;
fri.setAge(6);
CAT
boot(fri);
cout<<"1111112
"<<fri.GetAge()<<endl;
cout<<"2222221
"<<boot.GetAge()<<endl;
fri.setAge(7);
cout<<"1111113
"<<fri.GetAge()<<endl;
cout<<"2222222
"<<boot.GetAge()<<endl;
}



查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信