C++类和结构的区别以及内联成员函数

C++类和结构的区别 & 内联成员函数

1.基本类型


基本类型说明3个点

  1. 所占内存空间的大小
  2. 内存中的二进制怎么解释(int——补码,char——ASCII/Unicode)
  3. 可以进行的操作(int——+,-,*,/,%等)

2.类——自定义的一种类型

类 = 基本类型 + 成员函数(方法)

  1. 类中的成员变量决定了类对象所占的空间大小
  2. 类对象内存中的二进制分解为成员变量,逐个解释
  3. 通过自定义的成员函数,重载的运算符说明可以进行那些操作

3.类与结构体的区别

c++对结构进行了扩充,可以在结构中添加构造函数,析构函数和成员函数,但是,类中的成员有private、protected访问权限 结构中的所有成员的访问权限都是public

4.内联成员函数(inline)

内联函数,我有一篇博客介绍过,就是编译过程中,函数的调用不是跳转指令,而是使用函数代码段代替函数调用,类似于宏的一种机制。

A.隐式表示——在类中直接定义

class Class_name{

private:
    ...     //成员变量
public:
    <返回值类型> function_name (<参数列表>){
        ...     //函数实现的细节
    }
};

B.显式表示——类外定义时声明

/*这是一个头文件*/
class Class_name{

private:
    ...     //成员变量
public:
    //这里是一个函数声明
    inline <返回值类型> function_name(<参数列表>);
    //inline可以省略
};


/*上面头文件中的类的成员的定义*/

inline Class_name::function_name(<参数列表>){
    ...     //实现细节
}

/*头文件结束*/

如果使用这样的方式,那么,在使用这个内联函数的每个文件中都要有它的定义,所以,一般将定义放在头文件中

C.注意

如果函数比较大,或者本身是个递归函数,那么即使在类中定义,或者在外部显式定义,它看起来是个内联函数,其实编译过程中,和普通函数没有区别

猜你喜欢

转载自blog.csdn.net/qq2071114140/article/details/89114662