g ++
запрещает мне доступ к типу только потому, что он оказался частный дедушка. Имеет ли это смысл?
struct A {};
struct B : private A {};
struct C : B {
void foo(A const& a) {}
};
Компиляция этого дает:
1:10: error: ‘struct A A::A’ is inaccessible
6:12: error: within this context
Моя точка зрения: я никогда не хотел иметь доступ к A
как к предку. Фактически, если A
является частным предком B
, он не должен быть полностью невидимым для всех, кроме B
(то есть C
)?
Конечно, я мог бы использовать защищенное
наследование, но в моем случае это не имеет смысла.