我有這個類的定義:如果C++中+運算符重載的第二個操作數爲零,如何返回第一個操作數?
class foo{
public:
foo();
foo(const int& var);
foo(const foo& var);
~foo();
const foo operator +(const foo& secondOp) const;
private:
int a;
//plus other values, pointers, e.t.c.
};
而且我有此實施 '+' 操作符重載:
const foo foo::operator +(const foo& secondOp) const{
//I want here to check if i have one operand or two...
if ((FIRST_OPERAND.a!=0) && (secondOp.a==0)){
cout << "ERROR, second operand is zero";
return FIRST_OPERAND;
}
else if ((FIRST_OPERAND.a==0) && (secondOp.a!=0)){
cout << "ERROR, first operand is zero";
return secondOp;
}
}
當我寫在main()
:
foo a(2);
foo b;
foo c;
//I want here to print the ERROR and
//return only the values of a
c = a + b;
- 如果第二個操作數爲零,並且可以,我可以將第一個操作數的值設爲
return
反之亦然?
讓'operator +'返回一些具有相關信息的任意類型的對象,並且僅爲該類型重載'operator ='。 – 0x499602D2
如果第二個操作數丟失,你的代碼看起來像'c = a +;',對吧?這根本不會編譯。 –
你能更具體嗎?用代碼示例? @ 0x499602D2 – MinimalTech