再来看看this指针


/*
再来看看this指针*/

/************************************************************************
1.
通过写程序证明,C++中的成员变量是独立的,成员方法是共享的。
************************************************************************/

#include "stdafx.h"

class CTest
{
private:
    int m_nA;
    int m_nB;
public:
    void ShowFunAddr()
    {
        //this
指针就是对象本身
        //
显示一下函数自己的地址
        printf("
成员函数地址: %p\r\n", this->ShowFunAddr);
    }
    void ShowDateAddr()
    {
        printf("
数据成员m_nA地址: %p\r\n数据成员m_nB地址: %p\r\n",
               &(this->m_nA), &(this->m_nB));
    }
};

/************************************************************************

运行结果:
objA数据成员m_nA地址: 0012FF78 //数据成员的地址不一样
objA
数据成员m_nB地址: 0012FF7C
objA
成员函数地址: 0040100F     //函数地址是一样的
objB
数据成员m_nA地址: 0012FF70
objB
数据成员m_nB地址: 0012FF74
objB
成员函数地址: 0040100F     //函数地址是一样的

************************************************************************/

int main(int argc, char* argv[])
{
    CTest objA, objB;

    objA.ShowDateAddr();
    objA.ShowFunAddr();
   
    objB.ShowDateAddr();
    objB.ShowFunAddr();
    return 0;
}

 

好了,就写到这,本人学识有限,难免有出错地方,欢迎指正

原文地址:https://www.cnblogs.com/w413133157/p/1653419.html