函数
内联函数
在所写函数前端添加 inline ,则将该函数定义为内联函数。内联函数的好处是使用的时候,编译器不会进行传统函数需要的操作,例如保存寄存器等,而是直接在使用了该函数的地方,将函数内容直接拷贝过去,例如
inline int add(int a,int b){
return a+b;
}
void main(){
int a=1,b=2;
int c=add(a,b); //编译器其实在这里将add替换了,成为 int c=a+b;
}
该方法可以减小这种简短函数的运行开销。
函数指针
定义
int add(int &,int &);
该函数的类型是int (int &,int &),想声明一个函数指针只需用指针替换函数名即可
int (*p)(int &,int &); //未初始化的指针
注意这里的括号不可少,否则就是声明一个名为p的函数,返回类型为指向int的指针
赋值与调用
将函数名作为一个值使用的时候,其将自动转换为函数指针
p=add;
p=&add; //都可行且等价
在调用时,无需解引用
int c1=p(a,b);
int c2=(*p)(a,b);
int c3=add(a,b); //都可行且等价
返回指向函数的指针
可以利用写别名的方式返回,例如:
using F=int(int &,int &);
using PF=int (*)(int &,int &);
PF f1(int);
F *f1(int);
int (*f1(int))(int &,int &); //三种方式等价
最后一条按照从内向外的读法,首先f1有形参列表,则其是函数,看左边有*,则其返回类型为一个指针,再看发现指针也有形参列表,则返回为一个指向函数的指针
类
抽象数据类型——我们只能通过接口来使用一个类的对象,而无法访问其数据成员
|