C++类成员函数存储方式
来源:互联网 发布:snh 知乎 编辑:程序博客网 时间:2024/05/16 10:11
*类的成员函数是不占类空间的。
当我们实例化一个对象的时候,因为这个对象是用类定义的,那么它理所当然拥有了这个类的数据和函数。但是,一般情况下,不同的对象,他们的的数据值不同,但是函数的代码都相同。所以,为了节约存储空间(想象一下我们如果定义了100个对象,那么用100段内存空间存储相同的代码,岂不是很浪费?),我们让成员函数的代码共享。
所以类的成员函数,对于类来讲。一方面是逻辑上的“属于”,一方面是物理上的“不依赖“。
我们把成员函数的代码存储在对象空间之外。换句话说,成员函数的代码,都不占据对象的存储空间。它会被存在其他地方。
一个类对象的空间=所有类成员变量的大小
如果这个对象的类有虚函数的话,还可能多一个指向虚表的指针
所有函数存放在独立于对象的存储空间内
对象调用函数时,对静态成员函数直接调用不存在问题,对成员函数需要把自己以this指针传给函数以指明以哪个对象调用
所以用未初始化的指针调用静态成员函数、或者调用未使用任何成员变量的成员函数(即未用到this指针)
#include<iostream>using namespace std;class A{private: int a; double b; char c; static int d;public: void printf() { cout<< "shakalaka" <<endl; } virtual output() { cout<< "lalala" <<endl; }};int main(){ A a; cout<< sizeof(a) <<endl; return 0;}
0 0
- 类的成员函数的存储方式
- C++类成员函数存储方式
- C++:静态成员函数,静态数据成员,成员函数存储方式
- C++成员函数存储方式
- c++成员函数存储方式
- C++:类的成员函数存储方式(是否属于类的对象)
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- C++成员函数的存储方式
- c++类的成员函数、数据成员存储方式(是否属于类的对象)
- C++类的成员函数存储方式(是否属于类的对象)
- 类的成员函数存储方式(是否属于类的对象)
- C++成员函数在内存中的存储方式
- 《算法导论》Dijkstra算法实现
- SEO介绍
- spring 关于引入js、css文件问题
- c++实验四
- 150.Evaluate Reverse Polish Notation(Stack-Medium)
- C++类成员函数存储方式
- Lua + GraphicsMagick安装(第三种的lua脚本)
- kali Linux 搜狗输入法无法使用
- EIGRP基本配置
- AOJ.853 SLF 改造计划
- 主成分碎石检验
- java复习——流程控制
- Qt自定义事件实现及子线程向主线程传送事件消息
- 《深度探索C++对象模型》读书笔记(一)