在 c++ 中,这 3 个代码块之间有什么区别吗:
MyClass->m_Integer // 1
MyClass::m_Integer // 2
MyClass.m_Integer // 3
最佳答案
->
和 .
运算符是访问类实例成员的方法,而 ::
允许您访问静态类的成员。
->
和 .
的区别在于,箭头用于通过指向实例的指针进行访问,而点用于访问值(非指针)。
例如,假设您有一个定义为 MyClass
的类:
class MyClass
{
public:
static int someValue();
int someOtherValue();
};
您将在以下情况下使用这些运算符:
MyClass *ptr = new MyClass;
MyClass value;
int arrowValue = ptr->someOtherValue();
int dotValue = value.someOtherValue();
int doubleColonValue = MyClass::someValue();
在 Java 中,这看起来像:
MyClass ref = new MyClass;
int dotValue = ref.someOtherValue();
int doubleColonValue = MyClass.someValue();
关于c++ - "."、 "::"和 "->"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6894370/