• C++ 内联函数


    关于内联函数

    关键字:inline

    C++ 内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。

    对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编译器需要重新更换一次所有的代码,否则将会继续使用旧的函数。

    如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline 限定符。

    在类定义中的定义的函数都是内联函数,即使没有使用 inline 说明符。

    下面是一个实例,使用内联函数来返回两个数中的最大值:

    #include <iostream>
     
    using namespace std;
    
    inline int Max(int x, int y)
    {
       return (x > y)? x : y; // 如果x>y,返回 x,否则返回 y
    }
    
    // 程序的主函数
    int main( )
    {
    
       cout << "Max (20,10): " << Max(20,10) << endl;
       cout << "Max (0,200): " << Max(0,200) << endl;
       cout << "Max (100,1010): " << Max(100,1010) << endl;
       return 0;
    }

    当上面的代码被编译和执行时,它会产生下列结果:

    Max (20,10): 20
    Max (0,200): 200
    Max (100,1010): 1010

    内联函数与普通函数的区别

    内联函数必须是比较简单的代码,这样才可以直接编译函数的内部语句,如果函数过于繁琐,即便是加上inline也不会按照内联函数的方法进行编译。另外,循环体函数也不能编译成内联函数。

    类内定义与内联函数

    像下面这种函数名与函数体都写在类里面的函数形式被称作类内定义,编译器编译的时候会把它默认成内联函数。

    class Student
    {
    public:
        void setAge(int _age){age = _age;}
        int getAge(){return age;}
        void study(){}
    private:
        string name;
        int age;
    };
  • 相关阅读:
    localhost 和 127.0.0.1 认识
    postgreSQL可视化工具pgAdmin3 导入表结构和数据
    posgreSQL安装失败解决方案
    C#面向对象基本概念总结
    关于数据存储(关系型数据库和非关系型数据库)
    ADO.NET中的五大内置对象
    关于XML
    WPF中TreeView控件SelectedItemChanged方法的MVVM绑定
    WPF中使用MVVM进行multibinding
    WPF中TreeView控件数据绑定和后台动态添加数据(二)
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9249437.html
Copyright © 2020-2023  润新知