我在編寫一個返回1s和0s而不是true或false的代碼。但這似乎並不正確。運算符重載(int as bool)
int Short_Vector::operator==(const Short_Vector& obj){
if(a == obj.a && b == obj.b && c == obj.c && d == obj.d){
return 1;
}else{
return 0;
}
}
所以它應該爲每個變量返回一個值。
我也試過這樣:
int Short_Vector::operator==(const Short_Vector& obj){
int a_tf, b_tf, c_tf, d_tf;
if(a == obj.a){
a_tf = 1;
}else{
a_tf = 0;
}
if(b == obj.b){
b_tf = 1;
}else{
b_tf = 0;
}
if(c == obj.c){
c_tf = 1;
}else{
c_tf = 0;
}
if(d == obj.d){
d_tf = 1;
}else{
d_tf = 0;
}
return(a_tf, b_tf, c_tf, d_tf)
}
但我得到的逗號是操作錯誤。
EDIT
獲取錯誤:錯誤:從 'INT' 轉換到非標量類型「Short_Vector。
我試圖表示一個看起來像這樣的矢量[9,1,5,5]。
然後我會說
`Short_Vector a(2, 6, 9, 4);
Short_Vector b(3, 8, 7, 6);
Short_Vector c = a == b;
cout<<c;`
輸出則是:[0,0,0,0]
究竟是你想回來嗎?四位表示?數字1100或類似?四個單獨的值? – chris 2013-05-09 19:19:55
第一個代碼實際上應該工作。它做錯了什麼? – 0x499602D2 2013-05-09 19:21:57
@ 0x499602D2,OP想要返回值中的四件事情(或者至少這是我從中間語句中得到的印象)。 – chris 2013-05-09 19:23:31