C++学习随笔(三)

2020-04-14  本文已影响0人  宇宙巨炮

未经本人授权,禁止转载


这一期的全部内容几乎都是函数相关


1. 基于范围的for循环

这是C++11的新特性,下面直接给出代码示例

int num[5] = {1,2,3,4,5};
for(int x : num){
  cout<<x<<std::endl;
}    //遍历数组num

2. const与指针

const和指针的组合使用可以说是C++编程中非常重要的一个环节,使用得当可以更好的保护数据,使程序更加健壮。

3. 函数——声明时的参数设置

声明函数时void func(int x);void func(int)在结果上没有任何区别,但是void func(int x);这种声明方式中参数的变量名x相当于占位符。

4. 函数的参数传递

数组和结构体之类的数组结构传递的都是一个指向他们首地址的指针。

void func1(int array[][]);
void func2(int array[][4]);    //列数固定4列

5. 函数指针

int func(int);
int (*fptr)(int);
fptr = func;    //fptr是指向函数func的一个指针
int x = (*fptr)(5);   或   int x = fptr(5);    //函数指针的调用,前者清晰的指出这是一个函数指针

6. 内联函数

常规的函数需要在调用时跳转地址,耗费一定的时间,内联函数是直接使用相应的函数代码替换函数调用,速度更快但是占用更多内存,适合规模小需要反复调用的函数。
inline void func(int x);
内联函数不能递归,不能过大。

7. 引用const及其在函数中至关重要的作用

const是给变量起另外一个名字,指针是创建一个指针变量指向源变量,二者的作用类似,但是在实际使用中(依据需求)却有着很大的不同。主要区别一,const必须在定义时就表明他是谁的引用而指针不用;主要区别二,指针本身可参与运算但是引用不可,引用本质上是一个变量的两个名字。

1.const的优势
2.关于何时使用指针何时使用引用const,这里给出一些参考:

8. 函数的默认参数

在函数声明是我们可以给参数一个默认值:void func(string str , int n = 1);这样在调用func("abc");时 n会被默认设置为1,函数不会报错。

9. 函数重载

函数名相同,参数数目类型不同的函数,返回值可以相同也可以不相同,但是函数名相同参数相同返回值不同是不允许的。

10. 函数模版

不同类型的值都采用同一算法时可以使用函数模版来代替重复的函数。

template <typename mytype>    //没有分号
void swap(mytype &a , mytype &b);

int main()
{
    //........
}

void swap(mytype &a , mytype &b)
{
    mytype temp;
    temp = a;
    a = b;
    b = temp;
}

当然函数模版也是可以重载的,只不过在重载函数声明前依旧要加上template <typename Anytypename>

上一篇下一篇

猜你喜欢

热点阅读