C++编译器对属性和方法的处理机制
来源:互联网 发布:网络道德的原则有 编辑:程序博客网 时间:2024/06/08 06:41
C++编译器对属性和方法的处理机制
本文记录了C++学习过程中的一些基础点
1. C++类对象中的成员变量和成员函数是分开储存的
- 成员变量:
- 普通成员变量:存储与对象中,与struct变量有相同的内存布局和字节对齐方式。
- 静态成员变量:存储于全局数据区中。
- 成员函数:
- 存储在代码区中。
2.C++编译器对普通成员函数的内部处理
代码
class Test{private: int var;public: Test(int _var) { this->var = _var; } int getVar() { return this->var; } static void Print() { printf("This is class test.\n"); }};int main(){ Test t(10); t.getVar(); Test::Print();}
- 上面的一段代码,是我们编写的c++代码,编译器是通过下面的方式进行处理的。从而将具体的对象分开。
struct Test//将类转化为结构体{ int Var;};void Test_initialize(Test *this,int _var)//将构造函数转化成含有结构体指针的普通函数{ this->Var = _var;}int Test_getV(Test *this)//将普通成员函数转化成含有结构体指针的普通函数{ return this->Var;}void Test_Print()//static函数转化为不带结构体指针的全局函数{ printf("This is class test.\n");}int main(){ Test t; Test_initialize(&,10); Test_Print();}
小结
- c++类对象中的成员变量和成员函数是分开存储的。按照内存模型进行存储。
- c++中类的普通成员函数都隐式包含了一个指向当前对象的this指针。
- 静态成员变量和静态成员函数属于类,可以通过类名(::)进行访问,也可以通过类对象(.)进行访问。
0 0
- C++编译器对属性和方法的处理机制
- C++编译器对属性和方法的处理机制
- C++复习要点总结之六——编译器对属性和方法的处理机制
- java中的反射机制对属性和方法的操作
- 编译器对父子类同名变量和同名方法的处理
- C、C++编译器对struct大小的处理
- 编译器对extern的处理
- java编译器对string常量表达式的处理和优化
- C++ 编译器对字符编码的要求和处理方式
- c编译器的连接属性
- java方法调用过程解析和执行--编译器的处理
- 分析编译器对C关键字的处理『跳过编译器的语法检查,完成很危险的操作』
- 编译器对源文件编码的处理
- 对属性动画和事件分发机制的一些理解
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 5.循环
- 这是一篇markdown教程
- POJ 2955
- Firefox的“httpRequest”插件简单使用
- 模拟下拉框效果
- C++编译器对属性和方法的处理机制
- ajax跨域请求
- RTX移植
- 谷歌的天敌竟然是亚马逊:从开放7-Mic阵列授权说起
- android自定义控件实现太极图,拖动,缩放不超过边界
- Java中的基础----堆与栈的介绍、区别
- 你听过最心酸的一句话是什么?
- pta 5-37 整数分解为若干项之和 (递归)
- 医院客户关系管理/医院随访/CRM/HCRM