class VirtualNumber{
private:
int real_number;
int vitual_number;
public:
VirtualNumber(int a,int b);
void show();
VirtualNumberoperator+(VirtualNumber a);
VirtualNumberoperator-(VirtualNumber a);
staticVirtualNumber mul(VirtualNumber a,VirtualNumber b);
VirtualNumberoperator+(int a);
VirtualNumberoperator-(int a);
int getRealNumber();
int getVitualNumber();
};
intVirtualNumber::getRealNumber(){
returnthis->real_number;
}
intVirtualNumber::getVitualNumber(){
returnthis->vitual_number;
}
VirtualNumber::VirtualNumber(int a,int b){
this -> real_number = a;
this -> vitual_number = b;
}
voidVirtualNumber::show(){
cout << "{" <
}
VirtualNumberVirtualNumber::operator+(VirtualNumber a){
int vitual = this->vitual_number + a.getVitualNumber();
int real = this->real_number + a.getRealNumber();
VirtualNumber result = VirtualNumber(vitual,real);
return result;
}
VirtualNumberVirtualNumber::operator-(VirtualNumber a){
int vitual = this->vitual_number - a.getVitualNumber();
int real = this->real_number - a.getRealNumber();
VirtualNumber result = VirtualNumber(vitual,real);
return result;
}
VirtualNumberVirtualNumber::operator+(int a){
int vitual = this->vitual_number;
int real = this->real_number + a;
VirtualNumber result = VirtualNumber(vitual,real);
return result;
}
VirtualNumberVirtualNumber::operator-(int a){
int vitual = this->vitual_number;
int real = this->real_number - a;
VirtualNumber result = VirtualNumber(vitual,real);
return result;
}
VirtualNumberVirtualNumber::mul(VirtualNumber a, VirtualNumber b){
int i = 0,j = 0,k = 0,l = 0;
i = a.getRealNumber()*b.getVitualNumber();
j = a.getVitualNumber()*b.getRealNumber();
k = a.getRealNumber()*b.getRealNumber();
l = a.getVitualNumber()*b.getVitualNumber()*-1;
VirtualNumber result = VirtualNumber(k+l,i+j);
return result;
}
int main(){
VirtualNumber a = VirtualNumber(3, 2);
VirtualNumber b = VirtualNumber(2 ,5);
a.show();
cout << "*";//根据需要改+- 除法没做实在是忘记了
b.show();
cout << "=";
(VirtualNumber::mul(a, b)).show();
//乘法没用重载,这里可以写(a+b).show(); 或者 (a-b).show()
return0;
}
//试试看