读书人

继承一个类与把一个类实例化成一个成员

发布时间: 2012-05-20 16:03:12 作者: rapoo

继承一个类与把一个类实例化成一个成员有什么区别
说具体一点,比如有一个串口操作的类A,有打开串口(open)、关闭串口(close)和读一个字节(readbyte)三个方法。现在要定义一个类B,使其具有打开串口(open)、关闭串口(close)和读n个字节(readNbyte)三个方法。
实现方法1:把A实例化的对象a作为B的一个成员。然后在B的方法中分别实现对a的响应操作(如open(){a.open();}),方法readNbyte内部多次调用a.readbyte。
实现方法2,B继承A,然后添加方法readNbyte,readNbyte内部多次调用readbyte.

初学c++,感觉这两种方法效果是一样的。请大侠指教两者的区别、尤略.

[解决办法]
一种是继承一种是组合,是一个和有一个的关系。
[解决办法]
继承:is a的关系.表明子类是父类的一种表现。比如你定义了一个抽象的串口类,那么如果你的电脑上有多种类型的串口,那么可以用继承实现出具体的类表明每种串口。因为:具体的串口是普通串口的一种拓展。
组合:has a 的关系。表明一个类拥有另一个类。比如你的电脑上有许多种串口,那么你定义一个电脑类,这电脑类内部就用组合方式来包含那么多具体的串口类。因为电脑是拥有那么的串口。

读书人网 >C++

热点推荐