ここに私の問題があります:私は2つの異なるクラスAとBで作業しています。クラスAにはタイプBのオブジェクトへのポインターのベクトルが含まれており、このベクトルを関数myfuncで使用したいと考えています。これはAのメンバーです。例
class B {
public:
int x, y;
float z;
// other class members...
};
class A {
public:
// other class members...
vector <B*> myvect;
float myfunc() {
for(size_t i = 0; i < myvect.size(); ++i) cout << myvect[i] -> x << endl;
// rest of the code...
return (some float)
}
};
プログラムはコンパイルされません。B が未定義の型であるというエラーを返します。cout ステートメントをコメントアウトした場合にのみコンパイルされます。私はインターネットを検索し、 i をイテレータとして宣言したり、イテレータを逆参照したりするなど、いくつかのことを試しましたが、何も機能しませんでした。このコードの何が問題なのですか?