C++运算符重载的问题

[复制链接]
查看11 | 回复4 | 2009-8-17 16:32:56 | 显示全部楼层 |阅读模式
很简单因为你的构造函数有参数,而你创建对象的时候没有用到参数因为一旦你自己定义了一个构造函数后,原本的默认构造函数就失效了我提供两个方法:1:自己写一个无参构造函数2:在原来构造函数设置默认参数值 sample(int a=0); 你的错误貌似已经不是程序问题了
回复

使用道具 举报

千问 | 2009-8-17 16:32:56 | 显示全部楼层
sampleoperator +(const sample& s1,const sample & s2){ sample s(0);
// 此处应为构造函数提供参数 s.value=s1.value+s2.value; cout<<"定义双目重载运算符+"<<endl; return s;}或者是在你的构造函数中填写一个带默认形参值的参数,值为0即可,声明如下:sample(int a = 0);在实现文件中不用修改。参考资料:原创

已赞过已踩过<
回复

使用道具 举报

千问 | 2009-8-17 16:32:56 | 显示全部楼层
sample s;是什么?这个类里面没有默认构造函数,无法这么调用,定义默认构造函数就解决了.
回复

使用道具 举报

千问 | 2009-8-17 16:32:56 | 显示全部楼层
缺少默认的构造函数,class sample{private: int value;public: sample(int a);。。。添加一个默认构造函数就可以了。sample(){}调试通过了的。
回复

使用道具 举报

千问 | 2009-8-17 16:32:56 | 显示全部楼层
楼主是用vc6.0编译的么? 应该是编译器的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行