程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++ is on the way 2

c++ is on the way 2

編輯:C++入門知識

問題:對象之間有幾種關系,分別是什麼?

簡單來講,對象間的關系可以描述為:

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(假設不溢出)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved