概述
简单总结一下C++中的各种特殊函数
1.static成员函数
定义在类体中,定义时在前面加static关键字:
class Test{
static void getID();
}
static 函数属于类,但是不属于类的任何一个对象,不能访问类的成员。
一般的成员函数都有隐含的this指针,但是static成员函数没有。
因为static成员函数不是任何对象的组成部分,所以static成员函数不能被声明为const(将函数声明为const,就是承诺不会修改该函数所属的对象)
static成员函数也不能为虚函数
static成员函数遵循正常的公有和私有访问规则(在类外不能访问私有的static成员函数)。
2.内联函数
内联函数的声明和定义在一起。如果是类的成员函数,可以省略inline关键字。
class Test{
public:
int getID(){return _id;} //默认为inline函数
private:
int _id;
};
inline int getMax(int x,int y){return (x > y) ? x : y;} //在类外声明一个inline函数,inline不能省略
inline函数可以减少函数调用的开销。
普通函数调用:(1)调用前保存寄存器,并在返回时恢复;(2)复制实参;(3)程序转向一个新的位置执行。
inline函数调用:在调用点“内联地”展开。它类似宏函数的文本替换,但是它是实际的函数,有形参检查,安全检查和语法检查。而宏函数没有。
一般来说,内联函数都是小的,几行代码而且经常被调用的函数。大多数编译器不支持递归函数的内联。
内联函数作为成员函数时,调用和继承关系和普通成员函数无异。
3.友元函数
友元函数可以破坏C++的封装,可以访问一个类的非公有成员。
友元的定义虽然在类中,但是它并不属于这个类或者类的对象。
只要包含friend函数的作用域就可以直接调用它。
最后
以上就是甜甜小天鹅为你收集整理的C++学习--static函数,内联(inline)函数, 友元 (friend) 函数的全部内容,希望文章能够帮你解决C++学习--static函数,内联(inline)函数, 友元 (friend) 函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复