成员变量初始化与构造函数
构造顺序是根据成员列表的顺序开始初始化
析构时那个先构造,哪个先释放
#include <iostream>
using namespace std;
class demo
{
public:
demo(){x= 0;cout<<"demo constructor.."<<x<<endl;}
demo(int i){x = i;cout<<"demo constructor with one parameter.."<<x<<endl;}
~demo(){cout<<"demo constructor with one parameter.."<<x<<endl;}
int get(){return x;}
void set(int i){x = i;}
private:
int x;
};
class rectangle
{
public:
rectangle(){x = 1000;cout<<"rectangle constructor.."<<x<<endl;}
rectangle(int i, int j ,int k):x(i),length(j),width(k){cout<<"rectangle constructor with three parameters.."<<length.get() * width.get()<<endl;}
~rectangle(){cout<<"rectangle destructor.."<<x<<endl;}
int area(){return length.get() * width.get();}
private:
int x;
demo length;
demo width;
};
int main()
{
rectangle a(100,200,300);
return 0;
}
Result:
demo constructor with one parameter..200
demo constructor with one parameter..300
rectangle constructor with three parameters..60000
rectangle destructor..100
demo constructor with one parameter..300
demo constructor with one parameter..200
在构造函数的初始化列表中赋值可以对const或者&引用赋值。