ここに私の最初の投稿があります!私はこのサイトを参照用として、また一般的な問題の解決策を見つけるために、長年にわたって使用してきました。残念ながら、私が直面しているこの問題は、ここではまだ見つかっていません! それで、ここにあります。私はしばらくの間、プロジェクトに取り組んできました。私のプログラムには数千行のコードがあるため、ここではすべてを投稿しません。基本的に、親クラスをコードのどこかで既に初期化されているクラスに変更したいサブクラスがあります。これが可能かどうか、またはそれが適切なコード プラクティスであるかどうかはわかりません。しかし、私はあなたたちにそれを判断させます!これが私が直面している問題です:
#include <stdio.h>
class Base
public:
int data;
Base(int);
};
class Child : public Base
{
public:
Child(void);
void run(Base*);
};
Base::Base(int var)
{
data=var;
}
void Child::run(Base* base)
{
this = base //I know that you can create a reference to the parent class
//by casting this pointer to a Base pointer, but was wondering
//if you can do this the other way around.
printf("%d\n",Base::data);
}
int main()
{
Base* base1 = new Base(5);
Base* base2 = new Base(3);
Child one();
one.run(base1);
delete base1;
delete base2;
base1=0;
base2=0;
return 0;
}
したがって、これがコンパイルされると (コンパイルされない場合) 5 のような出力が得られ、run メソッドのパラメーターを base2 に変更すると、3 のような出力が得られるはずです。これは可能ですか? ありがとうございました!