c++ is on the way 2
问题:对象之间有几种关系,分别是什么?
简单来讲,对象间的关系可以描述为:
has-a 关系:包含关系,A对象中包含B对象。这是在一个类中嵌入另一个类的实例实现的。
is -a 关系:继承关系,B对象是对A对象的继承。这是由继承技术实现的。
has-access-to 关系:可访问关系,即B可以访问A中的数据成员。这是由友元类和引用实现的。
问题:什么是友元类?
友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。
当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类。定义友元类的语句格式如下:
friend class 类名;
其中:friend和class是关键字,类名必须是程序中的一个已定义过的类。例如,以下语句说明类B是类A的友元类:
class A
{
…
public:
friend class B;
…
};
经过以上说明后,类B的所有成员函数都是类A的友元函数,能存取类A的私有成员和保护成员。使用友元类时注意:
(1) 友元关系不能被继承。
(2) 友元关系是单向的,不具有交换性,不具有传递性。问题:引用的使用需要注意一些什么?
引用在创建之时必须初始化,或在其声明中完成。对于成员引用,在构造方法的前导中完成初始化。或者在调用一个带有引用的方法时,在调用之时完成。
问题:右移位运算符的工作方式有什么不同 ?
对于无符号数,1011>>1 == 0101,对于有符号类型,1011>>1 == 1101,因为无论怎么移位,是不会改变其符号的,对于任何一个数字来说,移位运算符,右移都是除以2,左移都是乘以2(假设不溢出)。
补充:软件开发 , C++ ,