第一种叫继承,b_s可以直接访问a_s中的非私有成员函数和变量
第二种叫聚合,b_s不能直接访问a_s中的成员函数和变量,只能通过a变量间接访问
其它不同的地方还有很多,不是随便能说清楚的
数据上实现共享,运算上实现多态.
继承了a_s,则b_s就有了a_s类的成员,但b能不能访问a中的成员,还要看两个方面,一是成员在a中的属性,是public还是protected,或是private;二是继承方式是public还是protected,或是private。总之b中就有了a中成员的一份拷贝了,a有的成员b都有了,当让b还可以定义自己特有的成员。
b中定义了一个a_s,则b要想访问a的成员就只能通过a_s的对象了,因为b并没有继承到a的成员,只是通过a_s的对象才和a_s取得了联系。b_s里通过a_s的对象可以访问a_s的所有成员(函数和数据)