2 wyn0222 wyn0222 于 2016.05.08 15:27 提问

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;
}

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.05.08 20:11
已采纳

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

wyn0222
wyn0222 回复小灸舞: 复制好了
大约 2 年之前 回复
qq423399099
qq423399099 回复wyn0222: 方便的话复制一份,不要截图
大约 2 年之前 回复
wyn0222
wyn0222 贴了
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.05.08 15:32

C++ 中的运算符重载
C++中的运算符重载
C++的运算符重载
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq423399099
qq423399099   Ds   Rxr 2016.05.09 11:22

是要这样吗?

 #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;
}

图片说明

wyn0222
wyn0222 回复wyn0222: 好了 谢谢
大约 2 年之前 回复
wyn0222
wyn0222 组建时出错 是软件问题吗
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言运算符重载
C语言运算符重载
C语言常见错误
c语言常用错误,出现的错误,c语言中出现错误时可以查看
win7 23上装office 2003报1919错误解决方法
win7 23上装office 2003报1919错误解决方法
C常见错误
C常见错误 c运行时常出现的错误解决方法 C常见错误.doc C常见错误.doc
sqlserver错误:1316 , 出现网络错误
试图读取文件sql2008 R2Enterprise\2052_CHS_LP\x64\Setup\SSCERuntime_x86-CHS.msi,出现网络错误。
U8读取数据源出现未知错误
U872读取数据源出现未知错误解决方法
C指针宝典
详细分析了c的精髓,指针的各种用法和可能出现的错误。
C语言常见错误提示信息
C语言常见提示信息,对C语言编程时出现的错误的解释
Win7安装IIS时“出现错误,并非所有的功能被成功修改”
本人Windows7旗舰版在安装IIS时,总是提示“出现错误,并非所有的功能被成功修改”,试了网上很多方法,没有一个成功的,都是忽悠人的。本文档是我亲自测试的结果,保证成功使用。
安装Microsoft Office时出现:错误1606。无法访问网络位置O。
安装Microsoft Office时出现:错误1606。无法访问网络位置O。解决方案