麻烦帮我看下这个C++程序哪里出错了

来源:百度知道 编辑:UC知道 时间:2024/09/21 04:09:57
#include<iostream.h>
#include<stdlib.h>
class Integer{
public:
Integer(short int i=0){a=i;}
Integer operator +(Integer);
Integer operator -(Integer);
Integer operator *(Integer);
Integer operator /(Integer);
Integer&operator =(Integer);
void show();
short int a;
};
Integer Integer::operator+(Integer k){
Integer temp;
if((temp.a+k.a)>32767||(temp.a+k.a)<-32768)
{cout<<"Data overflow!";exit(0);}
temp.a=a+k.a;
return temp;
}
Integer Integer::operator -(Integer k){
Integer temp;
if((temp.a-k.a)>32767||(temp.a-k.a)<-32768)
{cout<<"Data overflow!";exit(0);}
temp.a=a-k.a;
return temp;
}
Integer Integer ::operator *(Integer k){
Integer temp;
if((temp.a*k.a)>32767||(temp.a*k.a)<-32768)
{cout<<"Data overflow!";exit(0);}
temp.a=a*k.a;
retur

操作符重载的时候出错。‘=’重载定义不正确。
这个说起来太麻烦,你还是自己去看一下重载的内容介绍,再看一下你的程序。
主要问题:仔细看一下,为什么会用到友元函数来进行重载。
不使用友元函数进行重载的时候,它的“形式”和用友元的有什么区别。