C++ 中的點運算子是什麼?
點運算子和箭頭運算子都用於在 C++ 中訪問類的成員。它們只是在不同的場景中使用。在 C++ 中,宣告為類、結構或聯合的型別被認為是“類型別”。因此,以下內容指的是兩者。
- a.b 僅在 b 是物件 (或對物件的引用[1]) a 的成員時使用。因此,對於 a.b,a 將始終是類的實際物件(或對物件的引用)。
- a→b 本質上是 (*a).b 的簡寫,即,如果 a 是指向物件的指標,則 a→b 正在訪問指向的物件的屬性 b。
請注意,. 不可過載。→ 是一個可過載運算子,因此我們可以定義自己的函式 (operator→()),當使用此運算子時應該呼叫該函式。因此,如果 a 是過載 operator→ 的類的物件(常見的此類型別是智慧指標和迭代器),則含義是類設計者實現的任何內容。
[1] 從語義上講,引用是物件的別名,因此我也應該在 #3 中新增“或對指標的引用”。但是,我認為這會比有幫助更令人困惑,因為對指標的引用 (T*&) 很少使用。
示例
#include<iostream>
class A {
public: int b;
A() { b = 5; }
};
int main() {
A a = A();
A* x = &a;
std::cout << "a.b = " << a.b << "\n";
std::cout << "x->b = " << x->b << "\n";
return 0;
}輸出
這將給出以下輸出:
5 5
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP