2017-01-20 9 views
0

두 가지 클래스가 있습니다 : Market을 확장 한 Chart.클래스를 초기화하고 MQL에서 부모를 재정의하는 방법은 무엇입니까?

Chart 클래스를 초기화하고 싶지만 이미 동일한 부모 클래스에 포인터를 제공하여 (같은 것을 가리킬 수있는 경우 새 인스턴스 초기화를 방지하기 위해) 메모리를 절약 할 수 있습니다. 그것이 실패하지만

class Market { 
    public: 
    void Market(Market *_market) { 
     this = GetPointer(_market); // Error: '=' object required 
    } 
}; 

class Chart : public Market { 
    public: 
    void Chart(Market *_market) : Market(_market) { 
    } 
}; 

: 여기

코드입니다

'='객체가

인가 필요한 자녀 중 부모 클래스의 인스턴스를 오버라이드 (override) 할 수

클래스 포인터를주는 초기화?

답변

0

이 생성자에서 상위 클래스에 포인터를 재정 의하여 작동합니다 :

class Market { 
}; 

class Chart : public Market { 
    public: 
    void Chart(Market *_market) { 
     Market *_parent = (Market *) GetPointer(this); 
     _parent = _market; 
    } 
};