わかりました、この例は、私が理解しようとしている概念にとって非常に簡単です。コードを示します。
class Base
{
protected:
string name;
public:
virtual string getName() const { return this->name; }
virtual void setName(string name) { this->name = name; }
....
}
class Derived : public Base
{
private:
double price;
....
}
main(int argc, char** argv)
{
Base* base = new Base("Base Class");
Derived* derived = new Derived(base, 453.21);
derived->setName("Name changed!");
cout << "Name of instance: " << base->getName() << endl;
// Desired effect
Output: 'Name changed!'
// Actual effect
Output: 'Base Class'
....
}
私にとっての問題はこれです。既に作成された基本クラスのインスタンスを参照して派生クラスのインスタンスを作成したいので、派生インスタンスを介して基本クラスのメンバー変数を変更すると、上記の方法で以前に作成された基本インスタンスの変更を確認できます。
注: 私の用語がおそらく少しずれていることは承知しているので、私の言いたいことをなんとか理解していただければ幸いです。厳しくしないでください。:)
注: コンストラクターが存在し、構文が正しくない可能性がある場合、これを行うための最良の方法がわからないため、コンストラクターを表示/作成しません。