Рассмотрим следующий код:
Struct Base
{
int x;
double y;
}
Struct A : public Base
{
}
Struct B : public Base
{ //here I don't want x (Base::x) to be inherited.
// is there a way to delete it (something like delete Base::x)
}
Struct C : public Base
{
}
Что считается наилучшей практикой для решения такой задачи?x
должно быть унаследовано A
и C
, (и, возможно, многими другими классами), поэтому я не могу поместить его в закрытый раздел Base
.Единственный способ, которым я вижу, - это удалить x
из Base
и поместить его в A
& C
.Но должен быть другой путь, верно?Спасибо.