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é
Toán tử :: trong C++ dùng để làm gì
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
Vậy trường hợp này thì sao?
int x;
int main()
{
int x = 2;
::x = 3;
}
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?
Đú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
}
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
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.
::
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/