C++多态与重载
#include<iostream>#include<string>usingnamespacestd;classComplex{doublea;doubleb;publ...
#include<iostream>
#include<string>
using namespace std;
class Complex
{
double a;
double b;
public:
Complex(){a=0;b=0;}
Complex operator+(Complex another)
{
Complex add;
add.a=a+another.a;
add.b=b+another.b;
return add;
}
void Putln()
{
cin>>a>>b;
}
void Show()
{
cout<<"("<<a<<"+"<<b<<"i)";
}
};
class Summator
{
public:
int Addition(int a,int b);
float Addition(float a,float b);
string Addition(string a,string b);
Complex Addition(Complex a,Complex b);
};
int Summator::Addition(int a,int b)
{
return a+b;
}
float Summator::Addition(float a,float b)
{
return a+b;
}
string Summator::Addition(string a,string b)
{
return a+b;
}
Complex Summator::Addition(Complex a,Complex b)
{
return a+b;
}
void main()
{
Summator summator;
int intA,intB;
float floatA,floatB;
string stringA,stringB;
Complex complexA,complexB;
cout<<"请输入两个整数:"<<endl;
cin>>intA>>intB;
cout<<intA<<"+"<<intB<<"="<<summator.Addition(intA,intB)<<endl;
cout<<"请输入两个小数:"<<endl;
cin>>floatA>>floatB;
cout<<floatA<<"+"<<floatB<<"="<<summator.Addition(floatA,floatB)<<endl;
cout<<"请输入两个字符串:"<<endl;
cin>>stringA>>stringB;
cout<<stringA<<"+"<<stringB<<"="<<summator.Addition(stringA,stringB)<<endl;
cout<<"请输入两个复数"<<endl;
complexA.Putln();
complexB.Putln();
complexA.Show();
cout<<"+";
complexB.Show();
cout<<"=";
summator.Addition(complexB,complexA).Show();
cout<<endl;
}
Complex类中的运算符重载怎么理解?Complex operator+(Complex another)
还有summator.Addition(complexB,complexA).Show();和Complex Summator::Addition(Complex a,Complex b)怎么理解 展开
#include<string>
using namespace std;
class Complex
{
double a;
double b;
public:
Complex(){a=0;b=0;}
Complex operator+(Complex another)
{
Complex add;
add.a=a+another.a;
add.b=b+another.b;
return add;
}
void Putln()
{
cin>>a>>b;
}
void Show()
{
cout<<"("<<a<<"+"<<b<<"i)";
}
};
class Summator
{
public:
int Addition(int a,int b);
float Addition(float a,float b);
string Addition(string a,string b);
Complex Addition(Complex a,Complex b);
};
int Summator::Addition(int a,int b)
{
return a+b;
}
float Summator::Addition(float a,float b)
{
return a+b;
}
string Summator::Addition(string a,string b)
{
return a+b;
}
Complex Summator::Addition(Complex a,Complex b)
{
return a+b;
}
void main()
{
Summator summator;
int intA,intB;
float floatA,floatB;
string stringA,stringB;
Complex complexA,complexB;
cout<<"请输入两个整数:"<<endl;
cin>>intA>>intB;
cout<<intA<<"+"<<intB<<"="<<summator.Addition(intA,intB)<<endl;
cout<<"请输入两个小数:"<<endl;
cin>>floatA>>floatB;
cout<<floatA<<"+"<<floatB<<"="<<summator.Addition(floatA,floatB)<<endl;
cout<<"请输入两个字符串:"<<endl;
cin>>stringA>>stringB;
cout<<stringA<<"+"<<stringB<<"="<<summator.Addition(stringA,stringB)<<endl;
cout<<"请输入两个复数"<<endl;
complexA.Putln();
complexB.Putln();
complexA.Show();
cout<<"+";
complexB.Show();
cout<<"=";
summator.Addition(complexB,complexA).Show();
cout<<endl;
}
Complex类中的运算符重载怎么理解?Complex operator+(Complex another)
还有summator.Addition(complexB,complexA).Show();和Complex Summator::Addition(Complex a,Complex b)怎么理解 展开
3个回答
展开全部
看书 c++ primer plus
运算符重载 其实就是两个对象的操作。
Complex operator+(Complex another)
加号的重载,就是把两个对象进行加法运算。
如果不做重载,那你就要把对象的变量依个进行加法,
但是类变量是私有的,只能封装。
summator.Addition(complexB,complexA).Show();
这个就是类对象的一个使用了
首先 summator是一个实例化的对象,这个对象有一个方法 是Addition
summator.Addition(complexB,complexA) 这样就是调用这个方法对不对?
Complex Addition(Complex a,Complex b);这个方法有个返回值
他也是一个实例化的对象 Addition(complexB,complexA)这个返回一个对象。
Addition(complexB,complexA).Show() 这样调用对吧
合起来呢?
summator.Addition(complexB,complexA)生成一个对象,
然后对象再调用Show()
运算符重载 其实就是两个对象的操作。
Complex operator+(Complex another)
加号的重载,就是把两个对象进行加法运算。
如果不做重载,那你就要把对象的变量依个进行加法,
但是类变量是私有的,只能封装。
summator.Addition(complexB,complexA).Show();
这个就是类对象的一个使用了
首先 summator是一个实例化的对象,这个对象有一个方法 是Addition
summator.Addition(complexB,complexA) 这样就是调用这个方法对不对?
Complex Addition(Complex a,Complex b);这个方法有个返回值
他也是一个实例化的对象 Addition(complexB,complexA)这个返回一个对象。
Addition(complexB,complexA).Show() 这样调用对吧
合起来呢?
summator.Addition(complexB,complexA)生成一个对象,
然后对象再调用Show()
更多追问追答
追问
Complex operator+(Complex another)
{ Complex add; add.a=a+another.a; add.b=b+another.b; return add; }不懂呀
追答
这个是对象的操作,比如A对象
A+ 就表示这个对象的一种调用方式 就像 A.xxx()一样
A+参数自然就是对象another
然后声明另一个临时存储的对象 add
然后 把本身的a+another.a 加起来 最后返回 临时的对象一个拷贝。
你应该知道 return 是返回的一个对象的拷贝
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先了解重载的概念,还有为什么用重载,,
还有什么情况下,叫多态,
如果这些你没有弄懂,跟你说了也没用
还有什么情况下,叫多态,
如果这些你没有弄懂,跟你说了也没用
更多追问追答
追问
Complex operator+(Complex another)什么意思?
追答
Complex operator+(Complex another) 继承
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询