c++中的.和::和:和->的区别
时间: 2023-09-28 18:05:47 浏览: 563
在C++中,`.`、`::`、`:`和`->`都是用来访问对象或类的成员,但它们的使用方式和语义略有不同。
`.`运算符用于访问对象的成员,例如:
```
MyClass obj;
obj.member; // 使用 . 访问对象 obj 的成员
```
`::`运算符用于访问命名空间、类的静态成员和枚举类型,例如:
```
namespace mynamespace {
int value;
}
mynamespace::value; // 使用 :: 访问命名空间 mynamespace 中的变量 value
class MyClass {
public:
static int value;
};
int MyClass::value = 0;
MyClass::value; // 使用 :: 访问类 MyClass 的静态成员 value
enum MyEnum { VALUE = 0 };
MyEnum::VALUE; // 使用 :: 访问枚举类型 MyEnum 的成员 VALUE
```
`:`运算符用于定义类的继承关系,例如:
```
class MyBaseClass {
public:
int value;
};
class MyDerivedClass : public MyBaseClass {
public:
int getValue() { return value; } // 使用 : 访问 MyBaseClass 的成员 value
};
```
`->`运算符用于访问指针所指对象的成员,例如:
```
MyClass* ptr = new MyClass();
ptr->member; // 使用 -> 访问指针 ptr 所指对象的成员
```
总结:
- `.`用于访问对象的成员。
- `::`用于访问命名空间、类的静态成员和枚举类型。
- `:`用于定义类的继承关系。
- `->`用于访问指针所指对象的成员。
阅读全文