Toán tử :: trong C++ dùng để làm gì

Hôm nay có 1 bạn trên FB hỏi :: để làm gì. Đạt thấy đây là câu hỏi hay, các bạn tìm hiểu thử nhé :smile:

9 Likes

Dùng để biết được phương thức đó, thành viên đó thuộc lớp nào.
Ví dụ:
Nội dung:

class PhanSo
{
public:
       void Nhap();
       void Xuat();
};

void PhanSo::Nhap()
{
///////////
}
void PhanSo::Xuat()
{
///////
}

Trong ví dụ này thì hàm nhập xuất thuộc lớp phân số, khi ta làm việc với nhiều class sẽ phải sử dụng toán tử :: nhiều hơn. Em chỉ hiểu được như thế thôi anh, không biết đúng phần nào không nữa :blush:

6 Likes

Vậy trường hợp này thì sao?

int x;
int main()
{
    int x = 2;
    ::x = 3;
}
4 Likes

x bên trong main nhận giá trị bằng 2, x ngoài main nhận giá trị bằng 3 phải không anh
Đạt?

4 Likes

Đúng rồi, Đó là công dụng của toán tử ::

Bên cạnh đó nó còn có 2 tác dụng nữa. Anh Tổng kết như thế này

  • TH1: Nếu gọi từ một đối tượng thì
    :: dùng để gọi phương thức, thành viên lớp cha của lớp hiện tại.

  • TH2: Nếu gọi từ namespace, enum thì
    :: dùng để gọi thành viên của namespace, enum đó

  • TH3: Nếu phía trước :: không có gì, tức không phải TH1, TH2
    :: dùng để gọi biến nằm ở ngoài scope
    Ví dụ:

int x;
int main()
{
    int x = 2;
    ::x = 3; // gọi x ở ngoài
}
18 Likes

sau khi hiểu 1 chút thì thấy a đạt càng ngày càng cáo! đúng là thầy có khác :wink:

3 Likes

bạn lê trần đạt có thể giải thích TH1 không?
và có thẻ có 1 ví dụ minh họa không?

Ở ngay comment trên thôi bạn.

4 Likes

:: trong C++ giống keyword this trong java, C#, javascript quá.

Mình có thấy một trường hợp khác sử dụng toán tử :: khi dùng để truy cập static member variables và gọi static method trong class.

https://en.cppreference.com/w/cpp/language/static
http://tapkaa.com/2013/02/c-class-with-static-function/

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?