我是靠谱客的博主 甜甜小天鹅,最近开发中收集的这篇文章主要介绍C++学习--static函数,内联(inline)函数, 友元 (friend) 函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简单总结一下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) 函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部