C++基础知识概述

一、函数的默认值

(1)默认值必须写在函数声明中;

(2)自右向左一次赋值;

(3)默认值赋值只能赋值一次,否则会报错;

(4)默认值不能使用局部变量,可使用全局变量。

二、函数重载

重载的定义:

        函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。

重载的举例:

       例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求 两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。

函数重载的三要素:1.同作用域;2.同函数名;3.参数列表不同;

注意事项:函数名相同,参数列表相同,返回值不同,不能构成函数重载;

三、内联函数(inline)

1.内联函数的定义:

       内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。内联函数是在调用时(编译阶段)将函数体内的代码展开。类似于宏替换,使用函数体替换调用处的函数名,但是宏替换是在预编译阶段生成的。

2.inline函数和static函数的区别:

(1)static函数有开栈和清栈的过程,而inline函数没有;

(2)static函数返回有符号的值;

3.inline函数的注意事项:

(1)递归函数不能定义为内联函数

(2)内联函数一般适合于不存在while和switch等复杂的结构 ,否则编译系统将该函数视为普通函数。

(3)内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。

(4)对内联函数不能进行异常的接口声明。

(5)内联函数在Debug版本下不生效,在Release版本下才生效。

四、引用

引用是一个别名,底层处理时和指针相同(C++中),在用到引用变量的地方,系统会自动解引用。

引用的特点:

(1)引用必须初始化;

(2)引用初始化的变量一定要能取地址;

(3)引用是不可改变的;

(4)引用只能访问引用变量所引用的内存单元;

(5)内置类型一般不使用引用,自定义类型使用引用;

例如:

 int  a =10;

 int  *p=&a;

 int  &b=a;  // 引用,b为a的别名;

 b=20;        // 相当于给a赋值,a=20;

const指针 引用的结合:

常引用可以引用立即数,也可以用来引用临时量,const  int  &c=20;

int a=10;

const  int  &b =a;  做操作数权限<=右操作数权限(const  int * <= = int  *)

形参上加上const的作用:   int  getSum(const int a, const int b)

(1)防止形参被修改;(2)引用立即数;

猜你喜欢

转载自blog.csdn.net/YANG_1605/article/details/84554239