当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,