假设我有这样一个类:
class Owner
{
private:
long m_Id;
QString m_Name;
public:
Owner() : m_Id(0) { ; }
virtual ~Owner() { ; }
inline long id() const { return m_Id; }
inline void setId(long id) { m_Id = id; }
inline const QString & name() const { return m_Name; }
inline void setName(const QString & name) { m_Name = name; }
}
我看到了一个代码&Owner::m_Id;
。我很困惑,它是否返回指向成员的指针?如果可以,如何在所有者的实例上使用它?
最佳答案
它确实返回一个 member pointer .您可以使用它来访问 m_Id
间接,如下所示:
long Owner::* ptrMem = &Owner::m_Id;
Owner owner;
owner.*ptrMem = 10;
cout << owner.m_Id << endl;
此代码在可访问 m_Id
的上下文中运行,例如在成员函数中。
这个例子不太有趣,因为你的类没有其他long
类型的成员。在存在多个此类成员的情况下,成员指针变得更有值(value):您可以将对特定成员的绑定(bind)推迟到运行时。
关于c++ - 这个语句返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907604/