为什么rectangle(){c=0,k=0,area=0;}要初始化为0才能得出答案

学计算机的小白 2019-12-23 10:49:10
#include<iostream>
using namespace std;
class rectangle
{
private:
int c,k,area;
public:
rectangle(){c=0,k=0,area=0;} // ??????
rectangle(int a,int b):c(a),k(b){area=c*k;}
void setlength(int a){c=a;}
void setwide(int b){k=b;}
int display()
{
area=c*k;
cout<<"massage of the rectangle:length="<<c<<" wide="<<k<<" area="<<area<<endl;
}

};
int main()
{
rectangle r1(3,4); //定义一个矩形r1,长为3,宽为4
r1.display(); //输出矩形r1的有关信息
rectangle r2; //定义一个矩形r2
r2=r1;
r2.display(); //输出矩形r2的有关信息
r2.setlength(10); //把矩形r2的长length改为10
r2.setwide(20); //把矩形r2的宽wide改为20
r2.display(); //再输出矩形r2的有关信息
rectangle r3(r1);
r3.display(); //输出矩形r3的有关信息
rectangle r4[2]; //定义矩形数组r4
for(int i=0;i<2;i++) //输出矩形数组r4中各个矩形的信息
r4[i].display();
return 0;
}
不初始化的结果
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=10 wide=20 area=200
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=1988780680 wide=8 area=-1269623744
massage of the rectangle:length=1988717498 wide=1341703882 area=-1812931388

初始化后的正确结果
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=10 wide=20 area=200
massage of the rectangle:length=3 wide=4 area=12
massage of the rectangle:length=0 wide=0 area=0
massage of the rectangle:length=0 wide=0 area=0
...全文
42 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧