C++重载运算符“<<”和“>>”出现错误

主函数中用<<>时
出现错误
no operator defined which takes a right-hand operand of type 'class vsctor' (or there is no acceptable conversion)

#include
using namespace std;
class vsctor
{
public:
vsctor(int z1=0,int z2=0,int z3=0);
void set(int z1,int z2,int z3);
void get(int& a,int& b,int& c) const;
//ostream& operator<<(ostream& os,const vsctor& v);
//istream& operator>>(istream& is,vsctor& v);
private:
int a,b,c;
};
main()
{
int z1,z2,z3,x1,x2,x3,y1,y2,y3;
vsctor v1(1,1,1);
vsctor v2(2,2,2);
cout< vsctor v;
cin>>v;
cout< }
vsctor::vsctor(int z1,int z2,int z3):a(z1),b(z2),c(z3)
{}
void vsctor::set(int x1,int x2,int x3)
{
a=x1;b=x2;c=x3;
}
void vsctor::get(int& z1,int& z2,int& z3) const
{
z1=a;z2=b;z3=c;
}
ostream& operator {
int z1,z2,z3;
v.get(
z1,z2,z3);
os return os;
}
istream& operator>>(istream& is,vsctor& v)
{
int z1,z2,z3;
is>>z1>>z2>>z3;
v.set(z1,z2,z3);
return is;
}

楼主贴一下代码吧,这样很难分析

是要这样吗?

 #include<iostream>
using namespace std;
class vsctor
{
public:
    vsctor(int z1=0,int z2=0,int z3=0);
    void set(int z1,int z2,int z3);
    void get(int& a,int& b,int& c) const;
    //ostream& operator<<(ostream& os,const vsctor& v);
    //istream& operator>>(istream& is,vsctor& v);
private:
    int a,b,c;
};

ostream& operator<<(ostream& os,const vsctor& v);
istream& operator>>(istream& is,vsctor& v);

void main()
{
    int z1,z2,z3,x1,x2,x3,y1,y2,y3;
    vsctor v1(1,1,1);
    vsctor v2(2,2,2);
    cout<< v1;
    cin>>v2;
    cout<<v2; 
}

vsctor::vsctor(int z1,int z2,int z3):a(z1),b(z2),c(z3)
{}
void vsctor::set(int x1,int x2,int x3)
{
    a=x1;b=x2;c=x3;
}
void vsctor::get(int& z1,int& z2,int& z3) const
{
    z1=a;z2=b;z3=c;
}
ostream& operator<<(ostream &os, const vsctor& v){
    int z1,z2,z3;
    v.get(z1,z2,z3);
    printf("%d %d %d\n", z1, z2, z3);
    return os;
}
istream& operator>>(istream& is,vsctor& v)
{
    int z1,z2,z3;
    is>>z1>>z2>>z3;
    v.set(z1,z2,z3);
    return is;
}

图片说明