为什么rectangle(){c=0,k=0,area=0;}要初始化为0才能得出答案
#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