私はベクトルクラスにいくつかの問題があります。何らかの理由で、まだ見つかっていない:P、私はベクトルにオブジェクトを挿入できません。私はベクタ、マップ、デュークなどを試みましたが、それらはすべて同じ奇妙な結果を持っています。クラスベクトルのC++の問題
保存したいオブジェクトは、2つのstd :: stringを含むクラスです。ここに私のポイントを説明するためのいくつかのコードです:
vector<DnsAddress> * dnss = new vector<DnsAddress>;
for(int i = 0; i < ns.size(); i++){
DnsAddress dn;
dn.SetRecord1(record1);
dn.SetRecord2(record2);
cout<<dn.GetRecord1()<<" : "<<dn.GetRecord2()<<endl; //this works, so it is inserting info to the object
dnss->push_back(dn);//this is where it begins to fail...
cout<<dnss->at(i).GetRecord1()<<" : "<<dnss->at(i).GetRecord2()<<endl;//doesn't work
DnsAddress a = dnss->at(0);//this way doesn't work either...
cout<<"dns: "<<a.GetRecord1()<<endl;
}
私は新人のミスがなければならないと確信しているものは...彼らは私を見つけるためにいくつかの時間を消費したときに起こる..私は嫌い。
誰かがこれを手にすることはできますか?
私はそれを感謝:)
をclaifyするには: エラーがありません...それは問題なく動作します...しかし、ベクトル数えます(.size()関数内の情報は、私の番号を伝えますあなたがそれにアクセスしようとすると、挿入したオブジェクトは)しかし、何も表示されません...しかし、エラーが
これでクラスDnsAdress
を提起されていない:class DnsAddress {
public:
DnsAddress();
DnsAddress(const DnsAddress& orig);
virtual ~DnsAddress();
void SetRecord2(string record2);
string GetRecord2() const;
void SetRecord1(string record1);
string GetRecord1() const;
private:
string record1;
string record2;
};
「動作しない」とはどういう意味ですか?コンパイラエラーが出ますか? –
'DnsAddress'クラスはどのように見えますか? –
問題#1:ヒープ上に 'std :: vector'を割り当て、それを所有するための生ポインタを使用することは、確かに良い考えではありません。 'std :: vector dnss;'の何が間違っていますか?明示的なメモリ管理はメモリ管理のバグにつながり、メモリ管理のバグは痛みにつながります。 –