2016-05-23 9 views
1

私はシンプルなチェッカーゲームを作っていて、グリッドシステムをセットアップしていますが、私はちょうど以下のクラスに示されているパラメータの設定を始めたいと思います。C++でTrackerクラスからTrackerオブジェクトを作成するにはどうすればよいですか?

私はメインのクラスにそれぞれの場所とタイプを設定しようとしているので、後でそれらを操作することができます。エラーが

エラー(アクティブ)デフォルトのコンストラクタがクラスに存在しない「トラッカー」である私はそうのように各部分を設定した後、これが発生します。私は私のトラッカーに追加する必要があります

vector<Tracker> setup; 
Tracker checker; 


checker.setType(1); 
    checker.setCheckID(20 + i); 
    checker.setPosX(xx); 
    checker.setPosY(yy); 
    setup.push_back(checker); 

何他のクラスでTrackerオブジェクトを使用するには、クラスを使用しますか?

答えて

4

あなたは使用する必要があります。

Tracker checker(1, xx, yy, 20 + i); 

の代わりに:

Tracker(int type, int positionx, int positiony, int checkID) 

のでライン:

Tracker checker; 
checker.setType(1); 
checker.setCheckID(20 + i); 
checker.setPosX(xx); 
checker.setPosY(yy); 

をごTrackerクラスが持っている唯一のコンストラクタがあるためです

Tracker checker; 

エラーが発生します。

Error (active) no default constructor exists for class "Tracker" 

また、あなたがの機能へのアクセス権を持っている場合は、emplace_backを使用することができ、ベクトルにTrackerを追加しているので:

std::vector<Tracker> setup; 
setup.emplace_back(1, xx, yy, 20 + i); 

これは、より多くのことができます最初にTrackerを構築してからpush_backを使用するより効率的です。

関連する問題