C++类总结
2014-02-19 22:05
197 查看
一、内存大小(所谓占内存是使用sizeof函数能计算出来的大小)
空类占一个字节。
一般成员变量占内存,静态成员变量不占内存,因为静态成员变量被放在全局变量中。
一般成员函数不占内存,因为函数存放在代码段中,sizeof是计算数据段的大小。
所有的虚函数占四个字节的大小,存储虚函数表的首地址。
类成员变量内存对齐方式与struct类似。
子类内存大小是父类内存大小与成员变量内存大小之和。
二、虚函数表
每个存在虚函数的类有一个虚函数表,虚函数表的指针存在于对象实例中最前面的位置。
虚函数在虚函数表中位置是按照申明顺序存放。
被重载的虚函数在虚函数表中的位置的值被更新,没有被重载的函数依旧。
三、静态成员
当将类的某个成员变量声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享,用途之一是统计有多少个对象实际存在,不能在类中初始化(构造函数中
也不能)。
静态成员函数不能调用非静态成员变量,要通过类的对象来调用。
静态成员函数在类外实现时候不能加static关键字。
静态成员函数没有this指针,它不能返回非静态成员。
空类占一个字节。
一般成员变量占内存,静态成员变量不占内存,因为静态成员变量被放在全局变量中。
一般成员函数不占内存,因为函数存放在代码段中,sizeof是计算数据段的大小。
所有的虚函数占四个字节的大小,存储虚函数表的首地址。
类成员变量内存对齐方式与struct类似。
子类内存大小是父类内存大小与成员变量内存大小之和。
二、虚函数表
每个存在虚函数的类有一个虚函数表,虚函数表的指针存在于对象实例中最前面的位置。
虚函数在虚函数表中位置是按照申明顺序存放。
被重载的虚函数在虚函数表中的位置的值被更新,没有被重载的函数依旧。
三、静态成员
当将类的某个成员变量声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享,用途之一是统计有多少个对象实际存在,不能在类中初始化(构造函数中
也不能)。
静态成员函数不能调用非静态成员变量,要通过类的对象来调用。
静态成员函数在类外实现时候不能加static关键字。
静态成员函数没有this指针,它不能返回非静态成员。
相关文章推荐
- C++类(Class)总结
- C++类中成员变量的初始化总结
- C++类(Class)总结
- C++类中成员变量的初始化总结
- C++类中的static成员学习总结
- C++类基础知识总结
- C++类的总结
- C++类中初始化成员变量总结
- Cocos2d-x v3.3 lua绑定c++类方法总结
- UML之C++类间关系总结
- Cpp -C++类中成员变量的初始化总结
- C++类中成员变量的初始化总结
- C++类的继承总结
- C++类(Class)总结
- C++类成员和数据成员初始化总结
- C++类中static总结
- C++类中成员变量的初始化总结
- C++类的基本知识总结
- C++类中成员变量的初始化总结
- c++类和对象以及成员函数的总结