私は次のものを持っています:
class foo {
private:
bar * x[];
public:
foo(bar * x[]);
};
foo::foo(bar * x[]) {
this->x = x;
}
私が理解している限りでは、配列の最初の要素 (フィールドとパラメーターの両方)x
へのポインターへのポインターです。ただし、このコードは機能しないため、間違っているに違いありません。次のエラーが表示されます。bar
x
x
In constructor 'foo::foo(bar**)': error: incompatible types in assignment of 'bar**' to 'bar* [0]'
この問題を解決するにはどうすればよいですか? 私は何を正しく理解していませんか?
注: ご想像のとおり、bar はクラスであり、プリミティブ型のプレースホルダーではありません。
編集:
私の目標は、プログラムの他の場所でこれを行うことです。
bar a[2];
bar b0 = bar(), b1 = bar();
a[0] = &b0;
a[1] = &b1;
bar * x[] = &a;
foo f = foo(x);
どうすればそれを達成できますか?また、 は とbar * x[] = &a;
同等bar ** x = &a
で&a
はありませ&(&a[0])
ん。ここで何が理解できませんか?