Сценарий: я хочу использовать родительские методы в child. Можно ли создать решение с двумя диалоговыми классами, как показано ниже?
//Parent is created using class wizard(inherited from CDialog)
class CDlgParent : public CDialog//Child class created using class wizard(inherited from CDialog) and then
//changed the inheritance
class CDlgChild : public CDlgParent
просто в качестве примера
class A
{
private:
void privateMethod(){}
protected:
void protectedMethod(){}
public:
void publicMethod(){}
};
class B : public A
{
void methodB()
{
//privateMethod();
protectedMethod();
publicMethod();
}
};
просто скопируйте это в свой код, и вы увидите, что он скомпилируется.
Если вы раскомментируете строку, она больше не будет компилироваться, выдавая такую ошибку:
не может получить доступ к закрытому члену, объявленному в классе ‘A’
Таким образом, единственные методы, которые вы не можете использовать из B, которые наследуются от A, это закрытые методы, все остальные могут использоваться просто как обычно
Других решений пока нет …