基本上,在其重载赋值运算符中调用类的构造函数是否可接受的编程实践/风格?如果不是,为什么不呢?
例子:
所以我有一个有 3 个数据成员的类,一个名为“value”的动态 int 数组,它保存一个大数字的数字,一个int length
表示数字中的位数,&一个int maxLength
表示数字的最大长度(大小动态数组)
这是我的带有参数 int 的构造函数:
bigInt::bigInt(const int &rhs){
//turn num_ into a string 'num'
stringstream ss;
ss << num_;
string num = ss.str();
length = strlen(num.c_str());
maxLength = (length - (length%16)) + 16;
value = new int[maxLength];
for(int i=1; i<=length; i++){
value[i-1] = num.at(length-i) - '0';
}
}
这是我的重载赋值运算符,其中右侧是常规 int 此方法调用构造函数:
bigInt bigInt::operator=(const int &rhs){
*this = bigInt(rhs);
return *this;
}
编辑:我想我应该用不同的措辞。我不是指 COPY 构造函数,而是具有非类实例参数的常规构造函数,以及 rhs 与 lys 类型不同的重载赋值运算符