2016-06-12 14 views
0

どの質問が必要なのかよくわからないので、エラーがポップアップする場所に行くつもりです。C++ - ヒープオブジェクトメンバ関数へのアクセス

私はInteractive BrokersからティックデータをMySQL DBにストリームするプログラムを開発中です。ストリームの速度とMySQLの書き込み速度の違いから生じるボトルネックを解消するために、私はTickオブジェクトを一時的に格納するキュークラスを実装しようとしています。コード:

TickQueue::TickQueue() 
    { 
     tickQueue = new std::queue<Tick>; 
    } 

    TickQueue::~TickQueue() 
    { 
     delete tickQueue; 
    } 

    void TickQueue::add(Tick t) 
    { 
     tickQueue->push(t); 
    } 

    int main() 
    { 
     time_t dt = time(0); 
     struct tm currTime; 
     localtime_s(&currTime, &dt); 
     TickQueue tq; 

     for (int i = 0; i < 5; ++i) 
     { 
      Tick tTick("fx", 1.2151, "SYM", i, currTime); tq.add(tTick); 
     } 

     if (tq.size() == 5) { cout << "success" << endl; } 



     return 0; 
    } 

永続性を維持するため、ヒープで初期化することにしました。しかし、私はこれが最良の実装ではないかもしれないと感じています。

また、size()はtqのメンバー関数ではないので、tq.size()にアクセスすることもできません。新しいオブジェクトを作成し、それがその根底にある構造(この場合はstd ::キュー)

答えて

0

あなたがTickQueueを宣言したのメンバーを継承持ってする方法はあります、あなたはこのようにその中にメンバーを置く:

std::queue<Tick> *tickQueue;

つまり、TickQueue 'が-であると言っていました。

代わりに、このようなTickQueueを宣言:

class TickQueue : public std::queue<Tick> { 
}; // TickQueue 

は今、あなたはTickQueuequeue<Tick> A-A 'で'、およびそのすべてのメソッドを継承することを言っています。

+0

完璧、ありがとうございます! C++でOOPをリフレッシュするための素早いリソースがありますか? –

+0

クイック?申し訳ありません。私がやったことは、ずいぶん前のことでしたが、それほど速くはありません... –

+0

さて、最高のリソースは? –

関連する問題