Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử chấm (Dot operator .) trong C++

Toán tử chấm và mũi tên đều dùng trong C++ để truy cập thành viên lớp. Chỉ dùng trong tình huống khác nhau. Trong C++, kiểu khai báo class, struct, union coi là "kiểu lớp".

  • a.b chỉ dùng nếu b là thành viên của đối tượng (hoặc tham chiếu đến đối tượng) a. Với a.b, a luôn là đối tượng thực tế (hoặc tham chiếu) của lớp.
  • a->b là ký hiệu tắt cho (*a).b, tức nếu a là con trỏ đến đối tượng, thì a->b truy cập thuộc tính b của đối tượng được trỏ tới.

Lưu ý . không nạp chồng được. -> có thể nạp chồng, ta định nghĩa operator->() được gọi khi dùng toán tử này. Nếu a là đối tượng lớp nạp chồng operator-> (kiểu phổ biến: smart pointers, iterators), ý nghĩa do người thiết kế lớp quyết định.

Ví dụ

#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;
}

Kết quả

5
5