- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机基础多态的概念、覆盖和重载;主要内容;什么是多态性?;什么是多态性?;静态多态性和动态多态性;主要内容;1、成员函数重载和覆盖;2、成员函数重载;成员函数重载;3、覆盖技术;覆盖技术;覆盖技术;覆盖技术;4、访问被覆盖的方法;访问被覆盖的方法;访问被覆盖的方法;主要内容;class Complex
{
double real,imag;
public:
Complex() { real=0; imag=0; }
Complex(double r,double i);
Complex(const Complex c);
void print();
void copy(const Complex c);
}; ;Complex::Complex(double r,double i)
{ real=r; imag=i; }
Complex::Complex(const Complex c)
{ real=c.real; imag=c.imag;}
void Complex::copy(const Complex c)
{ real=c.real; imag=c.imag; }
void Complex::print()
{ if(imag0)
coutrealimag‘i’endl;
else outreal‘+’imag‘i’endl;
};void main()
{
Complex a(3,4),b(4,5);
a.print();
a.copy(b);
a.print();
};class Complex
{
double real,imag;
public:
Complex() { real=0; imag=0; }
Complex(double r,double i);
Complex(const Complex c);
void print();
void copy(const Complex c);
Complex Add(const Complex c);
}; ;Complex Complex::Add(const Complex c)
{
double x,y;
x=real+c.real;
y=imag+c.imag;
Complex tmp(x,y);
return temp;
};void main()
{
Complex a(3,4),b(4,5),c(0,0);
a.print();
a.copy(b);
a.print();
c=a.Add(b);
c.print();
};从简单数据类型开始思考运算符的实质?
表达式 9/2=4,而9.0/2.0=4.5 。这里的同一个运算符“/ ”,由于所操作的数据不同而具有不同的意义,为什么?如何实现的?
C ++是由函数组成的,在C++内部,任何运算都是通过函数来实现的。在处理表达式 8+7时,C ++将这个表达式解释成如下的函数调用表达式:
operator + ( 8, 7 );
相同的运算符对不同数据有不同的操作,实质上是函数的重载!;C++已经为各种基本数据类型定义了可能的运算符函数,如
operator+ (int,int)
operator- (int,int)
operator/(int,int);
operator/(double, double);
如果想让类的对象也能使用这些运算符,就需要重载对应的运算符。可以使用友元函数和成员函数两种方法实现运算符重载。;class Complex
{
double real,imag;
public:
Complex() { real=0; imag=0; }
Complex(double r,double i);
Complex(const Complex c);
void print();
Complex operator+(const Complex c);
}; ;Complex Complex::operator + (const Complex c)
{
return Complex(real+c.real,imag+c.imag);
}
void main()
{
Complex a(3,4),b(5,6),c;
c=a+b;
c.print();
};Complex Complex::operator + (const Complex c)
{
return Complex(real+c.real,imag+c.imag);
}
void main()
{
Complex a(3,4),b(5,6),c;
c=a+b;
文档评论(0)