ThreeD o3;
o3 >> 0 >> 20 >> 6;
Would mean you defined an operator something like:
ThreeD& operator>> (ThreeD &obj, int x)
{
return obj
}
Do you actually mean:
ThreeD o3;
o3 << 0 << 20 << 6;
In which case you'd define something like:
class ThreeD
{
int x,y,z;
int last;
public:
ThreeD() {
x = y = z = 0;
last = 0;
}
ThreeD(int i,int j,int k){
x=i;
y=j;
z=k;
last = 3;
}
friend ThreeD& operator>>(ThreeD& obj,int i);
};
ThreeD& operator>>(ThreeD& obj, int i)
{
switch (obj->last) {
case 0: obj->x = i; break;
case 1: obj->y = i; break;
case 2: obj->z = i; break;
default:
throw "Already got three numbers can't input any more!";
}
obj->last++;
return obj;
}