C++中的构造顺序
在我们编写C++代码时,有时候会出现构造函数参数在初始化时出随机值的情况,这个时候我们可以根据设计的类的属性调整一下顺序即可。
class Object
{
private:
int value;
int num;
public:
//value和num的构造顺序和类中设计的顺序的顺序有关,和参数列表无关
Object(int x = 0) :num(x), value(num)
{
}
~Object()
{
}
void Print()
{
cout << "value: " << value << endl;
cout << "num: " << num << endl;
}
};
int main()
{
Object obj(10);
obj.Print();
return 0;
}
调整顺序后代码及结果
class Object
{
private:
int num;
int value;
public:
Object(int x = 0) :num(x), value(num)
{
}
~Object()
{
}
void Print()
{
cout << "value: " << value << endl;
cout << "num: " << num << endl;
}
};
int main()
{
Object obj(10);
obj.Print();
return 0;
}