【C++】类函数调用this

再一次面试中,被问到,函数调用时是怎么知道对象的成员信息的,用vs调试了一把:

#include "stdafx.h"
#include 
#include 

class A{
public:
	void test(){
		std::cout << "test : " << num2 << std::endl;
	}
private:
	int num = 3;
	int num2 = 5;
};

int main(int argc, char* argv[])
{
	A a;
	a.test();

	return 0;
}

【C++】类函数调用this_第1张图片【C++】类函数调用this_第2张图片


结论:ecx 携带 this指针进栈,通过ecx (dword ptr [this])+ 偏移量获取成员变量

你可能感兴趣的:(C++-C)