편지를 구성할 때와this 지침

967 단어 this
보통this지침은 대상의 구조가 끝난 후에야 완전히 생성되는데 구조 함수 집행 과정에서 대상이 아직 완전히 생성되지 않았기 때문에this지침도 완전히 생성되지 않았기 때문에 구조 함수에서this지침을 사용하는 데 문제가 있을 수 있으므로 최대한 피해야 한다.
 
구조 함수에서는 대상에서 초기화된 구성원에 접근할 수 있지만 (구성원 초기화는 순서가 있음) 대상 방법을 사용하지 마십시오. 호출 방법은this지침을 사용하기 때문입니다.
일부 응용 프로그램에는 이러한 객체가 존재하며 구성원 변수는 객체의this 포인터로 초기화됩니다.
 
class A

{

    B b;

};

	

class B

{

    A* a;

};  

 
클래스 A의 구조 함수는 다음과 같습니다.
 
A(): b(this)

 
이렇게 하면 구조 함수에서this지침을 최대한 사용하지 않는 규범을 위반할 수 있다. 대체적인 방법은 A클래스에 Init방법을 추가하는 것이다. 이 방법에서 B의 구성원 변수 값을 A대상의this지침으로 설정하고 Init방법은 A대상이 구조된 후에 호출하여this지침이 완전하다.
 
class A

{

    B b;

    

    A()

    {

    }



    void Init()

    {

        b.SetMemberA(this);

    }

};



class B

{

    A* a;

    

    void SetMemberA(A* pa)

    {

        a = pa;

    }

};

좋은 웹페이지 즐겨찾기