C++中的點運算子是什麼?
點運算子和箭頭運算子都用於 C++ 中訪問類的成員。它們只是在不同的情況下使用。在 C++ 中,宣告為類、結構或聯合的型別被認為是“類型別”。因此以下內容都屬於此類。
- a.b 僅在 b 是物件(或對物件[1] 的引用)a 的成員時使用。因此對於 a.b,a 總是一個類的實際物件(或對物件的引用)。
- a →b 主要是一種簡寫形式,表示 (*a).b,即,如果 a 是對物件的指標,那麼 a →b 是訪問其指向的物件的屬性 b。
請注意,. 不是可過載的。→ 是一個可過載運算子,因此我們可以在使用此運算子時定義我們自己的函式(運算子 →())。因此,如果 a 是一個過載了運算子 →(常見型別是智慧指標和迭代器)的類的物件,那麼含義就是類設計者實現的內容。
[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