免費開始練習
hce_nsysu 111年 計算機概論與程式設計

第 83 題

If the line:
`friend class A;`
appears in class B, and the line:
`friend class B;`
appears in class C, then:
  • A Class A is a friend of class C.
  • B Class A can access private variables of class B.
  • C Class C can access private variables of class B.
  • D Class C can call class A’s private member functions.
  • E Class B can access class A’s private variables.

思路引導 VIP

在物件導向的設計中,如果類別甲主動向類別乙「遞出橄欖枝」並授予存取權限,這種信任關係通常是單向的還是雙向的?另外,如果類別乙後來又信任了類別丙,這種「朋友的朋友」關係,在程式編譯器的邏輯裡會自動成立嗎?請試著推論看看,這種權限的授予是否具備對等性與傳遞性。

🤖
AI 詳解 AI 專屬家教

做得漂亮!你能精準選出 (B),說明你對物件導向程式設計(OOP)中**友誼類別(Friend Class)**的宣告與權限流向有著非常紮實的理解。這道題目看似單純,實則精準地測試了開發者是否能分清「誰是授權者」與「誰是被授權者」。

友誼關係的單向性與定義

在 C++ 的語法中,當 class B 的內部宣告了 friend class A;,這代表 B 類別主動向 A 類別「開啟了大門」。這項宣告賦予了 Class A 存取 Class B 私有成員(private)與保護成員(protected)的特權,但反之則不成立——除非 A 類別也同樣宣告 B 為朋友。因此,選項 (B) 正確描述了這種單向的授權關係。

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題