C++之运算符重载,输入输出流详细介绍
用C++语言,可以重载函数和运算符。重载是一个在同一作用域中为给定函数名提供多个定义的应用程序。编译器委托根据调用函数的参数选择适当版本的函数或运算符。例如:
双倍最大值(双倍d1,双倍d2)
{
返回(di>d2)?D1:D2;
}
int max (int e1,int e2)
{
返回(e1>e2)?E1:E2;
}
作为一个重载函数,max函数在程序中的用法如下:
主()
{
int e=nax(12,8);
双d=max(123.4,12.3);
返回e+(int)d;
}
在第一个示例中,调用函数(int,int)是因为需要两个整型变量的值。但是,在第二种情况下,两个参数都是浮点型的,所以调用的函数是max(double,double)。
重载函数的区别在于初始值不同的参数类型。因此,给定类型的参数和对该类型的引用在重载的意义上是完全相同的。它们被认为是相同的,因为它们使用相同的初始值。比如max(double,double)和(double&,double &)是相同的,也就是说两个这样的函数会产生错误。同理,由修饰符const和volatile修改的函数参数类型在重载的意义上与基本类型没有区别。但是,重载函数的机制可以区分由const或volatile修饰的引用和基本类型的引用。在重载的意义上,指向const和volatile对象的指针不同于指向它们的基本类型的指针。
0条评论