c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用
程序员文章站
2022-06-21 23:44:57
c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用 c++不会像上图那样为每一个对象的成员变量和成员函数开辟内存空间, 而是像下图那样,只为每一个对象的成员变量开辟空间。成员函数的只开辟一个共用的空间,所有对象的都可以访问这个公共的空间。 但是就产生了一个问题,当某一个对象 ......
c/c++ 类成员变量,成员函数的存储方式,以及this指针在c++中的作用
c++不会像上图那样为每一个对象的成员变量和成员函数开辟内存空间,
而是像下图那样,只为每一个对象的成员变量开辟空间。成员函数的只开辟一个共用的空间,所有对象的都可以访问这个公共的空间。
但是就产生了一个问题,当某一个对象去调用某个成员函数的时候,这个成员函数怎么才能知道是哪个对象调用的它呢?
c++在某一个对象调用某个成员函数的时候,把这个对象的地址,隐式地作为这个函数的参数,传给了成员函数,所有可以在没成员函数里显示的使用this指针。
可以用下面的程序验证上面的理论。
打印类占用内存的大小和对象占用内存的大小,就可以看出来,只有成员变量占用的内存空间(注意,内存对齐)。
#include <iostream> using namespace std; class CGood{ int amount; float price; float total_value; char name[21]; }; int main(){ cout << sizeof(CGood) <<endl; CGood c1; cout << sizeof(c1) <<endl; }