public成员可以在基类访问也可以在子类访问,还可以使用基类和子类的对象访问。
protect成员可以在基类访问也可以在子类访问,不能使用对象访问。
private成员只能在基类中访问,不能再子类访问,不能使用对象访问。
以上基于public派生,否则基类的public成员在子类如果不再是public成员,则不能使用子类的对象访问。
个人一个经验是,在基类访问、在子类访问、使用对象访问,新手需要很久才能熟练深刻区分这几个概念。
protected 的主要用途是在类的继承中。
父类中protected的成员在子类中可见(可以直接访问)
但是父类的private在子类中是不可见的。
另外你的“private只能是基类public来访问”是有问题的,这么表达不清楚,你的意思是不是用public的函数来访问private的成员?
加上这两句话,这些烦恼就全解决了!
#define protected public
#define private public