如果它是重复的问题,我很抱歉,但是我没有找到关于这个问题的讨论。所以,我正在学习C++,并且我不明白将值分配给类对象的以下问题。我有这个实现的类牛逼的:将值分配给C++中的类对象
class T
{
int aInt;
double aDouble;
public:
T():aInt(0),aDouble(0.){}
T(int my_aInt, double my_aDouble):aInt(my_aInt), aDouble(my_aDouble){}
T(int my_aInt):aInt(my_aInt), aDouble(0.){}
T(double my_aDouble):aInt(0), aDouble(my_aDouble){}
void set_aInt(int my_aInt){
aInt = my_aInt;
}
void set_aDouble(double my_aDouble){
aDouble = my_aDouble;
}
int get_aInt(){
return aInt;
}
double get_aDouble(){
return aDouble;
}
};
我要创建这个类的对象,并指定一些值给他们。我可以这样做:
T tt1(-1, 5.), tt2(-1), tt3(5.);
它工作正常。现在我想更改分配给对象tt1的值。我知道我可以这样做:
tt1.set_aInt(-3); // gives aInt = -3, aDouble = 0
tt1.set_aDouble(6.); // gives aInt = 0, aDouble = 6.
它也可以正常工作。但似乎有另一种方式做到这一点:
tt1 = -3; // gives aInt = -3, aDouble = 0
tt1 = 6.; // gives aInt = 0, aDouble = 6.
tt1 = (-3, 6.); // gives aInt = 0, aDouble = 6. - Why?
我的第一个问题是:tt1 = -3;
相当于tt1.set_aInt(-3);
并且这是一个好的做法呢?第二个问题是tt1 = (-3, 6.);
有什么问题,为什么它设定的值为aInt等于而不是-3?
显式定义赋值成员函数。 – seccpur