私は基本クラスAと追加のメンバーを追加する派生クラスBを持っていると言います。今私はそれ自身のメンバーに直接アクセスするが、一時的なAオブジェクトを使用してバッチで派生メンバーを割り当てるクラスBのセッター関数を持っていると思います。ここではいくつかのサンプルコードがあります:自分のオブジェクトの '基本部分'に、自分のオブジェクトのようにアクセスできますか?
class A
{
public:
int x;
int y;
A(int arg1, int arg2)
: x(arg1), y(arg2) {}
};
class B : public A
{
public:
int z;
B(int arg1, int arg2, int arg3)
: A(arg1, arg2), z(arg3) {}
void setB(int arg1, int arg2, int arg3) {
/*something here*/ = A(arg1, arg2);
this->z = arg3;
}
};
//編集 私は質問が本当にないことは明らかではなかったと思います「私はできますか?」むしろ "どうすればいい?"さらに具体的に:私はセットB(作るために/*something here*/
の代わりに何を置くことができる)、実際と同じように動作します。
/*something here*/ = A(arg1, arg2);
で
void setB(int arg1, int arg2, int arg3) {
this->x = arg1;
this->y = arg2;
this->z = arg3; }
あなたは自分でそれを試してみましたか?私はそれに何の問題も見ません。また、達成したいことを考えてみてください。これは一般的には良い考えではないようです。 – JKreiser
ここでは注意してください。あなたが 'A'を通して' B'オブジェクトを参照することを計画しているならば、それらを使うかもしれない全てのコンテキストで多相型を使って適切な破壊動作を得るために仮想デストラクタを含めることができます。問題。](http://stackoverflow.com/questions/274626/what-is-object-slicing) – jaggedSpire
@ jaggedSpireこの場合、原因の問題をスライスできますか?私はそれができるとは思わないが、多分私は間違っている。 – Brian