7.函数

1 函数的的唯一表示方式:
        函数由函数名称 和 一组操作数类型(行参类型) 唯一表示。

2 类型检查:
        C++是一种静态类型语言。每一次函数调用,编译器都会进行实参
        类型检查,实参类型必须与行参相同或可以转换成行参类型。

3 参数传递:
        若行参是非引用类型,则复制实参的值,
        若行参是引用类型,则行参是实参的别名。

4 复制实参的局限性:
        1 当需要修改实参本身
        2 当实参是大型对象
        3 当实参对象无法复制

5 引用类型行参:
        利用引用类型行参可以实现对实参的直接操作。
        但是需要注意:
                1 对于非const引用行参,实参类型 必须 完全匹配;
                2 对于非const引用行参,实参必须为左值。

                3 const引用行参,实参可以不为左值,类型能够隐式转换即可。

6 标准库类型行参:
        标准库类型 通常不作为 函数非引用类型行参,对于容器类型,通常采用
        迭代器作为函数行参。

7 数组引用 作为 行参:
        若函数的行参为数组的引用,调用函数时将直接传递数组本身 而 不是将
        其转换成指针。
        void func(int (&array)[10]);            //此时必须指定数组长度

8 防止在操作数组行参时越界的解决方案:
        1 设置数组结束元素,如字符串的'\0';
        2 传递数组的起始地址和终止地址,类似与迭代器范围 begin(), end();
        3 传递数组的长度信息;

9 返回引用:
        不能返回函数局部变量的引用。应该确保返回的引用在调用函数之后不被
        立即回收。同理,不能返回局部变量的指针。

10 默认值行参:
        默认值实参是通过在函数定义时给行参参明确的初始值实现的。
        一个行参具有默认值,则定义在其后面的行参必须都有默认值。

        可以在声明中或定义中指定行参默认值,但是不能同时指定默认值,通常
        选择在声明时指定行参默认值。

11 自动对象 和 静态局部对象:
        自动对象是 每次调用函数时 被自动创建, 结束调用后被自动撤销的对象;
        静态局部对象,作用域只位于一个函数中,但是生命周期为程序运行周期;

        静态局部对象只进行一次初始化,保存在静态数据区。

12 内联函数(inline):
        内联函数是为了避免调用短函数造成不必要的函数调用开销。
        一般将内联函数定义在头文件中,内联函数不应该包有循环或递归调用。
        编译器隐式地将在类内定义的成员函数当做内联函数。

13 this指针:
        每个成员函数(除了static成员函数之外)都含有this指针,用来表示当
        前调用该函数的对象。

        const 成员函数 改变了this指针的类型,这使 const成员函数 只能对该
        对象进行只读操作。

14 构造函数:
        构造函数是特殊的成员函数,它与类同名,当时没有返回值类型。
        构造函数一般为 pubilc,这样所有使用该类的代码都可以利用该构造器
        初始化类对象。

15 函数的重载:
        出现在相同作用域中的两个函数,如果函数名称相同而行参类表不同(行
        参数目或类型),则称之为重载。
        函数不能仅仅因为返回值不同而实现重载。

        const 行参的重载:
                若const行参修饰非引用行参,则不够成新的类型区别;
                若const修饰引用行参,则构成类型区别,同理const修饰指针
                也构成类型区别。

        main函数不能重载,任何程序都只有一个main函数的实例。
        析构器不能重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值