0
class A
{
public:
    string  name;

    float   length;

    float   weight;

    bool    isEnabled;
};

このクラスのベクトルを操作しているときpush_back()、初めて機能しますが、その後のpush_back()呼び出しでは機能しません。文字列メンバーのせいでしょうか?もしそうなら、なぜですか?

4

2 に答える 2

1

私はあなたのコードを試しました。

vector<Aclass>  aClass;
aClass.push_back(Aclass("John Doe ", 6.2 , 220  , true) );
aClass.push_back(Aclass("John Doe2 ", 6.2 , 220  , true) );
aClass.push_back(Aclass("John Doe3 ", 6.2 , 220  , true) );
aClass.push_back(Aclass("John Doe4 ", 6.2 , 220  , true) );

しかし、エラーを再現できませんでした。

このコードは 4 回プッシュ バックします。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Aclass
{
public:
    string  name;
    double   length;
    double   weight;
    bool    isEnabled;

    Aclass(){}
    ~Aclass(){}

    Aclass(string  _name, double   _length, double   _weight, bool    _isEnabled )  //constructor
    {
        name = _name;
        length = _length;
        weight = _weight;
        isEnabled = _isEnabled;

        cout<<" \n";
        cout<<"Name   : "<<name<<" \n";
        cout<<"length : "<<length<<" \n";
        cout<<"weight : "<<weight<<" \n";
        cout<<" \n";
    }



};



int main()
{ 

    vector<Aclass>  aClass;
    aClass.push_back(Aclass("John Doe ", 6.2 , 220  , true) );
    aClass.push_back(Aclass("John Doe2 ", 6.2 , 220  , true) );
    aClass.push_back(Aclass("John Doe3 ", 6.2 , 220  , true) );
    aClass.push_back(Aclass("John Doe4 ", 6.2 , 220  , true) );

    cout<<" \n";


return 0;
}

出力:

Name   : John Doe
length : 6.2
weight : 220


Name   : John Doe2
length : 6.2
weight : 220


Name   : John Doe3
length : 6.2
weight : 220


Name   : John Doe4
length : 6.2
weight : 220


Press any key to continue
于 2012-01-03T16:12:09.803 に答える
-3

なぜそれと関係があるのstringですか?

やった#include <string>classコピーコンストラクターがあるかどうかについては言及していません。次のようになります。

class A {
public:
        A() //default constructor
        A(const A&) //copy constructor
};

デフォルトでは、c++ はすべてのパブリック メンバーをコピーしますが、STL コンテナーを使用してコピー コンストラクターを使用する必要があります。push_back()

于 2012-01-03T14:25:09.330 に答える