C++学习笔记:基础篇

函数部分

内联函数

代码直接内嵌而无需跳转进入函数,执行速度更快,但存储空间占用更大。适用于函数体短且调用频繁的地方。

  • 用法

在函数原型/定义前加上关键字inline即可。例如:

1
inline int add(int a, int b){return a+b;}

注意:内联函数不能递归

C语言的寄存器变量:将值存储在处理器的寄存器中,能提高运行速度。声明前加上register即可。不过一般很少用,因为现在编译器优化都很强了。

引用变量:&的重载

主要用于函数的参数,以此实现传址调用,和const指针比较像。不过和指针又有区别:声明时就得初始化。

  • 用法:和指针声明很像:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>

using namespace std;

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

int main(void)
{
int rats;
int &rodents = rats;

int a = 5, b = 3;
cout<<"a="<<a<<" b="<<b<<endl;
swap(&a, &b);
cout<<"a=:<<a<<" b="<<b<<endl;

return 0; //C++可以不加
}

默认参数

  • 用法:从右往左添加:
1
int chico(int n, int m, int c=0);

函数多态

允许声明同名但不同参的函数。这一般用来解决对不同类型参数应用同一种操作的情况,即“泛型编程”。典型的例子如下:

1
2
3
int abs(int x){return x>0?x:-x;}
float abs(float x){return x>0?x:-x;}
double abs(double x){return x>0?x:-x;}

当然,也可以使用C++模板来完成。

C++泛型编程

借助模板,可以实现与数据类型无关的编程。

作者

xeonds

发布于

2021-10-26

更新于

2024-05-13

许可协议

评论