2016-10-16 17 views
-1

私たちの教師は、オブジェクトのベクトルを作成し、その上で操作を実行するように指示しましたが、正しく行う方法を理解できませんでした:私は自分が行っていることを知るために最小限のデータで簡単なプロジェクトを作成しようとしました。オブジェクトのベクトルに要素を追加して印刷するにはどうすればよいですか?

私は、このクラスに

class Obj { 

    private: 

     int num; 

    public: 

     Obj(); 

     void setNum(int nuovo_num); 
     int getNum(); 

}; 

そして、このいずれかを持って、OBJの

class VettObj{ 

    private: 

     vector<Obj> vett; 

    public: 

     VettObj(); 

     void setVett(); 
     void stampaVett(); 

}; 

のベクターで私の最初に考えたのは、イテレータを使用していたが、私はちょうど総混乱を作っていたと、ほとんど役に立たない研究で、私は共通の整数カウンタを使うことにしました。

私はVettObjのコストラクターに何も書き込まないようにしました。それは自動的にものを初期化するので、空白にしました。

要素を追加する方法は、この

void VettObj::setVett(){ 


    Obj temp; 
    int i; 

    i = 0; 
    while(i < 5){ 


     temp.setNum(10); 

     vett.push_back(temp); 

     i++; 
    } 

} 

と要素

void VettObj::stampaVett(){ 


    int i; 

    i = 0; 
    while(i < 5){ 

     vett[i].getNum(); 

     i++; 
    } 

} 

私はコンパイルすると、すべてがうまく行くが、私はプログラムを実行すると、私は上で何を取得を出力1であります画面。多くの人がこのようにすることができることを知っているので、私はベクトル関数の大部分を(必要でない場合)使用したくありません。私は本当にイテレータでそれをやる方法を知りたいです。ヘルプpls ???

+0

このような問題を解決する適切なツールは、デバッガです。スタックオーバーフローを尋ねる前に、コードを一行ずつ進める必要があります。詳しいヘルプは、[小さなプログラムをデバッグする方法(Eric Lippert)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を参照してください。最低限、問題を再現する[最小、完全、および検証可能](http://stackoverflow.com/help/mcve)の例と、その問題を再現するためのデバッガ。 –

+0

**具体的な**質問をしてください。あなたのプログラムの起源に関する詳細な背景物語は、何とも関係ありません。 –

+0

あなたはおそらく "Hello World"で始めるべきです。なぜあなたのプログラムでスクリーン上に何かが印刷されると思いますか?それは魔法のようにあなたの心を読んで、あなたが望むことをしません。 – user463035818

答えて

0

stampaVett()メソッドで実際に何も印刷されていません。 SO国際社会があるので、私はまた、メソッドや変数の代わりに、イタリア語のために英語を使用することをお勧めしたい

void VettObj::stampaVett(){ 

    int i = 0; 

    while (i < 5){ 

     std::cout << vett[i].getNum(); 

     i++; 
    } 

} 

: あなたはと試みることができます。

+0

はい、それです:結局、私が作った研究は無駄ではありませんでした。ありがとうございました。 – AlbyTree

関連する問題