【发布时间】:2021-07-28 08:12:12
【问题描述】:
我已经实现了以下类,并尝试重载前置和后置增量运算符以及提取“>>”运算符。程序运行良好,直到 'cout
class ComplexNumber
{
private:
float real;
float img;
public:
ComplexNumber();
ComplexNumber(float, float);
ComplexNumber(const ComplexNumber& cn);
friend istream& operator>>(istream& in, ComplexNumber& cn);
// cin >> complexNo1 >> complexNo2;
friend ostream& operator<<(ostream& out, const ComplexNumber& cn);
//cout << complexNo1 << complexNo2; //3+4i, 5+10i
ComplexNumber& operator++(int);
//post increment operator. complexNo++;
ComplexNumber& operator++();
//pre increment operator. ++complexNo;
ComplexNumber& ComplexNumber::operator++(int x) // postincrement
{
ComplexNumber c = *this;
++(*this);
return c;
}
ComplexNumber& ComplexNumber::operator++() // preincrement
{
real++;
img++;
return *this;
}
int main()
{
ComplexNumber num1;//,num2,num3
cin >> num1;
cout << "-------------------------------------------" << endl;
cout << "Complex Number is : ";
cout << num1;
cout << ++num1;
cout << num1++;
}
【问题讨论】:
-
@RichardCritten 你能告诉 & 运算符在这里做什么以及它对输出有什么影响
-
非常感谢您的工作!
-
如果出现警告,编译器通常会对此发出警告。
标签: c++ function class operators overloading