c++基础知识(内联,static)

    1、内联函数(inline):一些简单的函数(函数体很小),我们会经常把它写成内联函数,在函数声明前加inline,如函数

                                    double Average(double total, int number){ 
                             return total/number;
                       } 

这么简单的函数,频繁调用时会增加很大的开销,我们可以把它定义为内联函数来避免它:

                  inline double Average(double total, int number){
                           return total/number;
                    }

在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换,将内联函数体中的代码替代到程序中,也就是调用内联函数时将整个函数的内容写到要调用的函数中。

    inline函数是提高运行时间效率,但却增加了空间开销。
       即inline函数目的是:为了提高函数的执行效率(速度)。
非内联函数调用有栈内存创建和释放的开销

◆使用内联函数时应注意以下几个问题:
(1) 在一个文件中定义的内联函数不能在另一个文件中使用。它们通常放在头文件中共享。
(2) 内联函数应该简洁,只有几个语句,如果语句较多,不适合于定义为内联函数。 
(3) 内联函数体中,不能有循环语句、if语句或switch语句,否则,函数定义时即使有inline关键字,编译器也会把该函数作为非内联函数处理。
(4) 内联函数要在函数被调用之前声明。



   2、可变数据成员: 有时,我们希望数据成员(甚至在const成员函数内)可以修改,可以通过将他们声明为mutable来实现。

   3、类背后蕴涵的基本思想是数据抽象封装

   4、构造函数不能声明为const

5、static类成员

  (1)static的作用之一:隐藏所有未加static前缀的全局变量和函数都具有全局可见性,在同一个工程中规定不能有相同的名字,加上static后就隐藏了本文件的成员,即相同的名字可在其他文件中声明;

 (2)static作用之二:保持变量内容的持久。一些局部变量在程序运行之后会自动释放,static会存储在静态数据区,保证当全部关闭程序后才将内存释放;

 (3)static成员函数只能访问static的数据成员变量;

 (4)static成员不能通过类的构造函数初始化,而是在需要的时候定义进行初始化

(5)static成员不能被声明为const,也不能被声明为虚函数;

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值