[问题] operator overloading的问题

楼主: peggypiano (大N)   2016-10-02 19:57:12
已解决...
发现得是
a.apple=b[0];
a.pen=b[1];
a.pinapple=b[2];
抱歉犯蠢 囧
弄了很久都没发现 囧
问题(Question):
不知道为什么无法存取到新给的input
喂入的资料(Input):
1 2 3
预期的正确结果(Expected Output):
1
错误结果(Wrong Output):
2
程式码(Code):(请善用置底文网页, 记得排版)
#include <iostream>
using namespace std;
class Poly
{
public:
int apple;
int pen;
int pinapple;
friend istream& operator >>(istream& ins, Poly& a);
};
istream& operator >>(istream& ins, Poly& a)
{
int b[3];
ins >> b[0] >> b[1] >> b[2];
b[0]=a.apple;
b[1]=a.pen;
b[2]=a.pinapple;
return ins;
}
int main()
{
Poly a;
a.apple=2;
cout << a.apple;
cin >> a;
cout << a.apple;
return 0;
}
补充说明(Supplement):
我希望可以cin 一个阵列然后 把值存进去 a,
但不知道问题出在哪里QQ
先谢谢帮看的大大
作者: Frozenmouse (*冰之鼠*)   2016-10-02 20:05:00
operator>>的实作给值的地方写反了?

Links booklink

Contact Us: admin [ a t ] ucptt.com