受保护的成员是否可以在非直接后代中访问?

Dmi*_*yov 1 c++

根据http://en.cppreference.com/w/cpp/language/access,

受保护的成员可以在类及其方法及其后代中访问

它们只是指直系后代,而不是后代的后代,还是指所有后代?

例如,如果C类是B的子类,B是具有受保护成员的A的子类,那么B显然可以访问它,但是C呢?

Jer*_*fin 6

受保护的成员可用于所有后代,直到/除非您达到使用私有继承的点.因此,只要您的A,B和C都使用公共继承(或受保护的继承,尽管这种情况很少被忽略),那么是的,最派生的仍然可以使用来自最基类的受保护成员(和如果有D,E和F,则仍然如此.