0

boost::numeric::ublas::c_vector<float, 3>3 つの要素が .x .y または .z でアクセスでき、フォームのコンストラクタを持つ aのサブクラスを作成するにはどうすればよいですかvec3(float x, float y, float z);。ブースト ベクトルを使用したかったのは、クラスのすべての演算子と数学関数の機能を自分で作成する必要がなく、すでにブースト ライブラリを使用していたからです。

例えば:

foo = vec3(2.5f, 0.0f, 0.0f);
bar = vec3(2.0f, 0.0f, 0.0f);

foo += bar;
cout << foo.x; // prints 4.5
4

1 に答える 1

2

基本クラスのメンバー関数は非仮想であるため、将来問題が発生する可能性があるため、サブクラスを作成しないでください。この場合、代わりに構成を優先します (このクラスのオブジェクトをクラスのメンバーにします)。また、Herb Sutter は、具体的なクラスを派生させないように提案しています (特に C++ では、仮想/非仮想メンバー関数のシステムが存在するため)。

于 2013-06-25T12:34:49.443 に答える