封闭类对象的创建与消亡(P126)
/*
封闭类构造函数的初始化列表:
当生成封闭类的对象并进行初始化时,它包含的成员对象也需要被初始化,需要调用成员对象的构造函数。
在定义封闭类的构造函数时,需要添加初始化列表,指明调用成员对象的哪个构造函数。
封闭类名::构造函数名(参数表):成员变量1(参数表),~
*/
#include<iostream>
using namespace std;
class CTyre
{
private:
int radius;
int width;
public:
CTyre():radius(16),width(185)
{
cout<<radius<<"\tCTyre 构造函数"<<endl;
}
CTyre(int r,int w):radius(r),width(w)
{
cout<<radius<<"\tCTyre 构造函数"<<endl;
}
~CTyre()
{
cout<<radius<<"\tCTyre 析构函数"<<endl;
}
int getRadius()
{
return radius;
}
int getWidth()
{
return width;
}
};
class CCar
{
private:
int price;
CTyre tyre;
public:
CCar();
CCar(int p,int tr,int tw);
~CCar();
int getPrice()
{
return price;
}
CTyre getCTyre()
{
return tyre;
}
};
CCar::CCar()
{
price = 50010;
CTyre();
cout<<price<<"\tCCar 构造函数"<<endl;
};
CCar::CCar(int p,int tr,int tw):price(p),tyre(tr,tw)
{
cout<<price<<"\tCCar 构造函数"<<endl;
}
CCar::~CCar()
{
cout<<price<<"\tCCar 析构函数"<<endl;
};
int main()
{
CCar car(48900,17,225);
cout<<"price="<<car.getPrice();
cout<<"\tCTyre.Radius="<<car.getCTyre().getRadius()
<<"\tCTyre.Width="<<car.getCTyre().getWidth()<<endl;
CCar car1;
cout<<"price="<<car1.getPrice();
cout<<"\tCTyre.Radius="<<car1.getCTyre().getRadius()
<<"\tCTyre.Width="<<car1.getCTyre().getWidth()<<endl;
return 0;
}

浙公网安备 33010602011771号