基本クラスと、複数のインスタンスを持つことができるいくつかの派生クラスがあります。派生クラスには、国籍名が格納される静的文字列があります。このように見えます...
// Base Class
class Person{
private:
// Informations that every person has. Not depending on the nationality
unsigned char m_size;
char[] m_name;
public:
// Get the human readable name of a nationality
void getNationalityName(char* pNatiName);
}
void Base::getNationalityName(char* pNatiName);
{
strcpy(pNatiName, m_nationalityName);
}
// A derived class
class American : public Person{
private:
unsigned int m_dollar;
static char[] m_nationalityName;
}
// Another derived class
class Russian : public Person{
private:
unsigned int m_rubel;
static char[] m_nationalityName;
}
派生クラスの 1 つからメソッド「getNationalityName」で国籍名にアクセスしたいと思います。問題は、基本クラスが、派生クラスに "m_nationalityName" というプロパティがあることを認識していないことです。
各クラスに「getNationalityName」メソッドを実装できますが、それはこの問題を解決する正しい方法ではないと思います。