公共成员和公共继承的受保护成员有什么区别?
what is the difference between public members and publicly inherited protected members?
公共成员和公共继承的受保护成员有什么区别?(据说受保护的成员只能由基类和紧接着的下一个派生类访问。但是,如果public继承protected成员,则可以进一步继承。
- 公共方法对所有人都是可见的。公共继承的protected方法仍然是受保护的,即对类本身和任何派生类可见。
Public成员可以从使用该类的对象的任何类中访问,对于访问Public成员,您不必继承该类,但要访问受保护的成员,您必须继承它。请注意,如果一个成员在基类中声明为受保护的,并且您公开继承了该成员,那么该成员也将被视为派生类的受保护成员。
Public成员也可以被其他类(不仅仅是派生类)访问,并且通常可以在任何地方访问。
好吧,公共继承是你的"正常"继承,所以在这种情况下,public和protected成员的语义正是你所认为的。
也就是说,您的public
成员是公共的,而您的protected
成员仅对当前和更多派生类可见。
基本上只有当你开始使用私有/受保护的继承时,事情才会变得危险和混乱,很奇怪。
- 1:如果受保护的成员被public继承,那么子类可以访问它,它将在子类中保持保护,以便我们可以在下一个子类中访问这个成员。
- 2:如果受保护成员被private继承,则子类可以访问它,它会在子类中设置为私有,这样我们就不能在下一个子类中访问该成员。
public成员是public。受保护的成员被保护。无论它们是通过直接定义还是从公共基继承而得到的
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 常量公共成员有什么问题?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- Visual C++: MSVC vs. GCC+CLANG: 处理 lambda 捕获类成员变量,正确的方法是什么?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 什么可以防止类中相邻成员重叠
- 指针类型类成员的动态强制转换的恒定性是什么?
- 删除类成员的动态分配内存的最佳方法是什么
- 使用 const char* 初始化 const ref 字符串成员时幕后会发生什么
- 初始化类成员的更好做法是什么?
- 键入擦除成员函数指针的"right"方法是什么?
- 构造函数中没有参数的对象类成员按什么顺序初始化?
- 使用只有一个成员的工会的目的是什么?
- 什么是指向成员模板参数的指针
- 常量成员和没有setter的私有成员之间有什么区别
- C++:允许临时对象调用非常量成员函数的设计理念是什么?
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 命名空间 Win 没有成员"simpleControl"是什么意思
- constexpr静态成员什么时候停止成为constexpr