子类 继承 父类 的 所有成员 , 包括 成员变量 和 成员方法 ;
子类 不会 继承 父类 的 构造函数 和 析构函数 ;
父类 的 成员变量 和 成员方法 的 访问属性 , 在 子类 中 是可以调整的 ;
访问控制权限 :
代码示例 :
class MyClass {
public:
// 公有成员
// 可以在任何位置访问
// 类内部 , 子类 , 类外部 都可以访问
int public_member;
protected:
// 保护成员
// 可以在类内部 , 子类 访问
// 类外部 不可以访问
int protected_member;
private:
// 私有成员
// 只能在 类内部 访问
// 子类 , 类外部 不可以访问
int private_member;
public:
// 针对共有成员变量的访问函数可以不写
void set_public_member(int value) {
public_member = value;
}
int get_public_member() {
return public_member;
}
// 保护变量 在外部只能通过共有的成员函数进行访问
void set_protected_member(int value) {
protected_member = value;
}
int get_protected_member() {
return protected_member;
}
// 私有变量只能通过共有的成员函数进行访问
void set_private_member(int value) {
private_member = value;
}
int get_private_member() {
return private_member;
}
};
C++ 的 继承方式 对 子类的 成员变量 和 成员方法 会造成影响 ,
成员的访问属性 需要看根据下面的逻辑进行判定 :
公有继承 :
// 子类 公有继承 父类
class Child : public Parent
父类中的访问控制权限 如下变化 :
保护继承 :
// 子类 保护继承 父类
class Child : protected Parent
父类中的访问控制权限 如下变化 :
私有继承 :
// 子类 私有继承 父类
class Child : private Parent
父类中的访问控制权限 如下变化 :