1

ヘッダー ファイルに関数プロトタイプがあります。

std::vector<std::vector<GenericBase* const> > allObserved();

ボイラープレートの実装 (役には立たないが、*できれば * コンパイルするためだけに)

//Accessors
std::vector<std::vector<GenericBase* const> > GenericObserver::allObserved(){

    return std::vector<std::vector<GenericBase* const> >();
}

コンパイラから 100 個のエラーが発生します。これらの関数を両方のファイルから (コメントを付けて) 削除すると、すべて正常にコンパイルされます。私は cplusplus.com の vector.h ドキュメントや他の「ベクトルのベクトル」の質問を調べましたが、誰も私の問題を抱えているようには見えません。

助けてくれてありがとう。

4

2 に答える 2

4

に格納されているオブジェクトvectorは割り当て可能である必要がありますが、 の場合はそうではありませんGenericBase* const。したがって、コンパイルエラー。

おそらくGenericBase const*、代わりに、ポイント先のオブジェクトを定数 (ポインター自体ではなく) にしたいですか? とにかく、最上位のconst修飾子を削除する必要があります。

于 2013-07-07T16:29:42.227 に答える
0

const を削除してみてください。

std::vector<std::vector<GenericBase*> > GenericObserver::allObserved()
{
    return std::vector<std::vector<GenericBase*> >();
}
于 2013-07-07T16:31:56.740 に答える