初写Qt 编程的时候,两个窗口之间的数据传递一直困扰我,后来用信号槽机制解决了这个问题。有天,和人讨论到这个问题,他说,不同窗口就是不同的类,窗口间的数据传递不就是类之间的数据传递吗?然后我一下也对,但是突然发现这方面似乎掌握的有些生硬,便做一些程序测试。
注意,构造函数和析构函数没有返回值
1.类的public成员函数只能访问类的public,,其他成员函数不能访问类的数据成员
2.B类的public成员函数可以访问A的public数据成员,不能访问A的private
3.B类的private成员函数不可以访问A的public成员函数
4.当B是A的子对象的时候,A只能调用子对象的public成员函数
5.当B是A的子对象的时候,只能A的public成员函数访问子对象数据成员,而且只能访问子对象的public数据成员
6.子类肯定不能调用父类成员函数
7.当B是A的子对象的时候,只能B的public成员函数访问父类数据成员,而且只能访问父类的public数据成员
注意:这里说的类,都是指类的对象!!
下面这段是COPY的》》》》》
C++中类访问权限控制:
第一:private, public, protected 访问标号的访问范围,在没有继承的情况下:
private:
只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。
protected:
可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。
public:
可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。
第二:类的继承后方法属性变化,具体情况如下:
private 属性是不能够被继承的,protected继承和private继承能降低访问权限。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;