定义一个整数计算类Integer,实现短整数+、-、*、/基本算术运算。要求:可以进行数据范围检查(-32 768~32 767,或自行设定),数据溢出时显示错误信息并中断程序运行。
#include <iostream> using namespace std; class Integer { private: short a; public: Integer (short n=0){ a=n;} Integer operator +(Integer); Integer operator -(Integer); Integer operator *(Integer); Integer operator /(Integer); Integer operator =(Integer); void display() { cout<<a<<endl; } }; Integer Integer::operator+(Integer x) { Integer temp; if(a+x.a<-32768||a+x.a>32767) { cout<<"Data overflow!"<<endl; abort(); } temp.a=a+x.a; return temp; } Integer Integer::operator-(Integer x) { Integer temp; if(a-x.a<-32768||a-x.a>32767) { cout<<"Data overflow!"<<endl; abort(); } temp.a=a-x.a; return temp; } Integer Integer::operator*(Integer x) { Integer temp; if(a*x.a<-32768||a*x.a>32767) {cout<<"Data overflow!"<<endl; abort();} temp.a=a*x.a; return temp; } Integer Integer::operator/(Integer x) { Integer temp; if(a/x.a<-32768||a/x.a>32767) { cout<<"Data overflow!"<<endl; abort(); } temp.a=a/x.a; return temp; } Integer Integer::operator=(Integer x) { a=x.a; return *this; } int main() { Integer A(90),B(30),C; cout<<"A=";A.display(); cout<<"B=";B.display(); C=A+B; cout<<"C=A+B="; C.display(); C=A-B; cout<<"C=A-B="; C.display(); C=A*B; cout<<"C=A*B="; C.display(); C=A/B; cout<<"C=A/B="; C.display(); }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题