C++函数重载和内置函数

===========================================================================================

(1)函数重载和运算符重载

函数重载: 即对一个函数名重新赋予多个的含义,使一个函数名可以多用。代码上体现为相同的函数名不同的参数类型和

参数个数。

int  max(int a, int b, int c)
double max(double a,  double b)
long max(long a, long b,long c)
运算符重载: 关键子 operator,  重载运算符的规则。

(1)C++不允许用户自定义新的运算符,只能对已有的C++运算符进行重载。

(2)不能重载的运算符有5个: . (成员访问运算符) * (成员指针访问运算符) :: (域运算符) sizeof (长度运算符) ?: (条件3目运算符)

(3)重载不能改变运算符的操作数,优先级,结合性, 不能有默认的参数

(4)重载的运算符必须和用户自定义的类型对象一起使用,其参数中至少有一个是类对象。下面的运算符重载是禁止的。

int  operator(int a, int b){ return (a+2*b);}
类型转换函数:将一个类对象转换成一类的数据。类型转换函数只能作为成员函数,不能作为友元函数和普通函数。

语法:   operator  类型名(   ){

 实现转化的语句

         }

#include<iostream>
using namespace std;
class Complex{
    private:
        double _real;
        double _image;
    public:
        Complex():_real(0.0),_image(0.0){};
        Complex(double r,double i):_real(r),_image(i){}
        ~Complex(){};
        operator double();
};
Complex::operator double(){
    return _real;
}
int main(void){
    Complex c(3, 4);
    double d;
    d = 2.5 + c;
    cout << "d = " << d << endl;
    return 0;
}

(2)内置函数:在编译时将所调用的函数的代码直接嵌入到主调函数中, 从而提高效率。下图表示普通函数的调用流程。


在1-->2和4-->5的过程中需要“保护现场"(保存程序当前执行的指令地址)和”恢复现场"(根据保存的指令地址回复,然后继续执行)

这两个过程都是需要消耗时间和空间。如果此函数被频繁的调用,则所用的时间增长,从而降低程序的执行效率。而内置函数

直接将function的嵌入到主调函数中,这样省掉步骤2和步骤4, 从而提高效率。因此,内置函数是那些规模较小且频繁调用的简

单函数(不包括复杂的控制语句和循环语句)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cugriver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值