C++问题 高手进啊

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:20:44
关于类和派生类
class group_2:public group_1
class group_2:group_1有什么不一样 group_2中的成员对group_1中各类成员的调用权限有什么不一样
请举个简单例子说明 谢谢
问题补充:class group_2:private group_1又有什么不同呢

访问权限public, protect, private 所有的C++书都有详细的解析

public继承,派生类继承父类的权限不变,父类的public, protect, private成员在派生中仍然为public, protect, private的。

protect继承,父类的public, protect, private成员在派生类为protect, protect, private的。

private继承,父类的public, protect, private成员在派生类都为private的。

对于单个类的public, protect, private成员他们的访问权限为:
类public成员可以在任何地方可见
类protect成员可以在自己的类和他的派生类中可见
类private成员只在自己的类中可见,类的外部不可见,包括他的派生类

例子就不用在举了吧,记住理论就会用了。

class group_2:group_1 相当于class group_2:private group_1

跟类的成员不特别指明,他的成员是私有的一样,继承不特别说明表示私有继承。

一样的,默认的继承是公有继承。

公有继承不可访问原类中的私有成员。
私有继承不可访问原类中的私有及受保护成员。

class group_2:public group_1
class group_2:group_1 默认的应该是private继承吧
和class group_2:private group_1一样

父类中是public/protected的,子类通过public继承依然是public/protected的
子类通过protected继承就都变成了protected
子类通过private继承就成了private
写了个例子:
#include<iostream>
using namespace std;