我想问一下在编写类之间的朋友关系
时用什么是可取的或继承它在我看来两个功能都是1,除了朋友可以访问私有成员而继承只是为了访问受保护的成员
答案 0 :(得分:2)
继承和友谊是完全不同的关系。
如果B类继承自A类,则表示B实际上是A。B类型的单个对象也是A类。有关访问公共成员和受保护成员的详细信息仅定义了一个B对象如何访问它本身的一部分。
如果B级向A级宣布友谊,那那就完全不同了。 A不是B. B不是A.关系只表示类型A的对象可以访问B类对象的私有部分。但它们仍然是对象的分离。
答案 1 :(得分:1)
友谊和继承是C ++中不同的概念。您使用friendship来授予其他类不相关的类对其他类的数据的访问权限,而继承则表示诸如 isa (public)或 is-implemented-in-terms-of (受保护,私有)。