C++类和结构的区别 & 内联成员函数
1.基本类型
基本类型说明3个点
- 所占内存空间的大小
- 内存中的二进制怎么解释(int——补码,char——ASCII/Unicode)
- 可以进行的操作(int——+,-,*,/,%等)
2.类——自定义的一种类型
类 = 基本类型 + 成员函数(方法)
- 类中的成员变量决定了类对象所占的空间大小
- 类对象内存中的二进制分解为成员变量,逐个解释
- 通过自定义的成员函数,重载的运算符说明可以进行那些操作
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.注意
如果函数比较大,或者本身是个递归函数,那么即使在类中定义,或者在外部显式定义,它看起来是个内联函数,其实编译过程中,和普通函数没有区别