在类里面不写是什么类型,默认是 private 的。
include <iostream>using namespace std;class Line{ int a;};int main() { Line line; line.a = 5; cout<<line.a<<endl;}
这个是会报错的,应该改成:
class Line{ public: int a;};
narip
nar***bc@gmail.com
Bad_Boy
tia***i0828@126.com
如果继承时不显示声明是 private,protected,public 继承,则默认是 private 继承,在 struct 中默认 public 继承:
class B : A {};B b;b.a; //错误b.a1; //错误b.a2; //错误b.a3; //错误
总结一下三种继承方式:
继承方式 | 基类的public成员 | 基类的protected成员 | 基类的private成员 | 继承引起的访问控制关系变化概括 |
---|---|---|---|---|
public继承 | 仍为public成员 | 仍为protected成员 | 不可见 | 基类的非私有成员在子类的访问属性不变 |
protected继承 | 变为protected成员 | 变为protected成员 | 不可见 | 基类的非私有成员都为子类的保护成员 |
private继承 | 变为private成员 | 变为private成员 | 不可见 | 基类中的非私有成员都称为子类的私有成员 |
联系客服