struct A {
protected:
int y;
public:
int z;
};
struct F : A {
public:
using A::y;
private:
using A::z;
};
int main() {
F obj_F;
obj_F.y = 9;
obj_F.z = 10;
}
Источник: http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=/com.ibm.vacpp7a.doc/language/ref/clrc14cplr135.htmдоступ членов в иерархии наследования - C++
В приведенном выше коде obj_F.z = 10; - разрешено. Объяснение: Доступ к члену z остается открытым. Объявление частного использования с использованием A :: z не влияет на доступ z.
Может ли кто-нибудь сказать мне, если z, объявленный как закрытый, доступен снаружи, то в чем смысл этого частного? Что оно делает?
Благодаря
-Saiyasodharan
Ошибка C2248: 'F :: z': не может получить доступ к закрытому члену, объявленному в классе 'F' – bjskishore123
В g ++: * ошибка: 'int A :: z' недоступен * –
получил ту же ошибку в VC++ 10 .. хотя он правильный в соответствии со стандартами, он неверен в MS VC++, кажется – saiy2k