-> 通过 指针 访问对象成员变量
Foo *foo = new Foo();
foo->member_var = 10;
foo->member_func();
. 对象实例的访问方法
Foo foo;
foo.member_var = 10;
foo.member_func();
:: 用于访问类/结构或命名空间的静态变量和方法。它还可以用于从另一个作用域访问变量和函数(在这种情况下,类、结构和命名空间实际上是作用域)
int some_val = Foo::static_var;
Foo::static_method();
int max_int = std::numeric_limits<int>::max();
注意 :: 应该与类名一起使用,而不是与类实例一起使用,因为静态字段或方法对于类的所有实例都是通用的。
::实际上限定函数的范围。也就是说,它让编译器知道函数位于哪个类中,从而知道如何调用它。如果使用此运算符调用函数,则该函数是static函数。
What is the difference between “::” “.” and “->” in c++ [duplicate]