下面c++有什么问题(运算符重载出了问题)

#include<iostream>
using namespace std;

class time
{int hour,minute,second;
public:
time(int a,int b,int c):hour(a),minute(b),second(c){}
print(){printf("%d,%d,%d",hour,minute,second);}
friend time operator+(time&aa,time&bb);

};

time operator+(time &aa,time &bb)
{return time(aa.hour+bb.hour,aa.minute+bb.minute,aa.second+bb.second);}

main()
{

}

第1个回答  2009-02-03
class time
{int hour,minute,second;
public:
time(int a,int b,int c):hour(a),minute(b),second(c){}
void print(){printf("%d,%d,%d",hour,minute,second);}
friend time operator+(time&aa,time&bb);

};

time operator+(time &aa,time &bb)
{return time(aa.hour+bb.hour,aa.minute+bb.minute,aa.second+bb.second);}

是print函数的问题
第2个回答  2009-02-03
两个问题:一个是print前加void,另一个是time换成mTime。似乎和其它定义有冲突本回答被网友采纳

下面c++有什么问题(运算符重载出了问题)
是print函数的问题

c++关于运算符重载的问题
1 char &operator[](int i);\/\/请说明此行的&是什么作用 函数的声明,防止在没有定义函数实体之前,被早先调用致使编译错误 2 char &charArray::operator[](int i)\/\/&是什么用,去掉会出错 返回的是一个char 型的变量,去掉的话返回的是char型的值。前者可以作为变量对它进行赋值。后者只是一个...

哪位高手帮我看下这个C++程序哪里出错了,是重载运算符的
cout<<"s1^s2=";\/\/多了一个<符号,且这个值是一个距离,不需要用坐标表示,LZ改改吧,如果还需要什么可以联系我 s4.display();system( "pause" );\/\/系统暂停 return 0;\/\/ }

请教c++运算符重载程序报错原因
这可能是编译器的原因。有些低版本的编译器,除了在类中申明友元关系之外,还要在类定义前对函数进行前向声明。如:Class Time;Time& operator++(Time& a);Time operator++(Time& a,int);ostream& operator<<(ostream& o,const Time& t);如果你用的是vc6.0的话就会出现这种情况。虽然重载运算符...

C++重载问题
把 “int main()”改成int main()”即可。原来的括号是中文输入状态下的,系统会报错。

VC++ 6.0 运算符重载 遇到问题 error C1001: INTERNAL COMPILER E...
首先要敲楼主的脑袋,写错代码,还以为谭老如此马虎:cout<<"c1="; c1.display();cout<<"c1="; c1.display();cout<<"c2="; c2.display();cout<<"c1+c2="; c3.display();中间是分号,而不是<<,但1786错误和这无关,是sp6不是最新的造成的,去官方站下个最新的打一下就可以通过...

C++中运算符重载问题,分别说明下面const的作用以及为什么要用引用_百 ...
函数中使用CONST(1)const修饰函数参数 a.传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)void function(const int Var); b.参数指针所指内容为常量不可变void function(const char* Var); c.参数指针本身为常量不可变(也无意义,因为char* Var也是形参)void function(char* const Var...

求助,关于一道C++函数重载的问题
1、运算符重载不改变操作符原先的优先级、结合性和操作数数目,++是单目操作符,所以1不会成立的。你有这样的问题大概是因为双目操作符比如*,可以有x.operator*(y)这种写法吧? 但是这个不改变*是二目操作符的事实。C++规定:双目操作符重载作为成员函数时只能有一个形参,调用方为左操作数,形参...

C++重载运算符问题
如果有机会看林锐的《高质量C\/C++编程指南》的话,里面有专门提到过这个问题。作者的建议就是,尽量用返回匿名的临时对象方法。另外一个问题就是,有的编译器会优化。上面的那个函数,即使改成先创建一个对象,然后再返回这个对象,如果是在dev-c++里,dev-c++就会做优化,不会调用复制构造函数。

请教关于C++中重载的问题1
指针P声明为公有的才能访问,就按友好函数访问的权限解释,因为你在重载函数中用到了Strcmp库函数,而它并不是类String的友好函数,因此是不能访问到指针P的 include <iostream> include<string> using namespace std;class String { public:String(){p=NULL;} String(char *str);friend bool ...

相似回答
大家正在搜