// 멤버함수의호출원리

class A

{

        int x;

public:

        void foo( int a )      // void foo( Point* const this, int a)

        {

               x = a;                 // this->x = a;

        }

};

 

void main()

{

        A a1, a2;

        a1.foo(10);  // foo( &a1, 10 );

        // push &a1 이 아니라 mov ecx, &a1
        // a1 , 즉 this
에 대한 인자는 레지스터로 보낸다.( thiscall )

        // push 10

        // call foo

}

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다