2017-01-20 4 views
0

私は2つのクラスを持っています。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) { 
    } 
}; 

:ここ

はコードです

'=' オブジェクトが

はです必要な子中に親クラスのインスタンスを上書きすることが可能である

クラスポインタを与えることによって初期化?

答えて

0

これはコンストラクタで親クラスへのポインタを上書きすることで動作するはずです:

class Market { 
}; 

class Chart : public Market { 
    public: 
    void Chart(Market *_market) { 
     Market *_parent = (Market *) GetPointer(this); 
     _parent = _market; 
    } 
}; 
関連する問題