c++ - 这个语句返回什么?

标签 c++

假设我有这样一个类:

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/

相关文章:

c++ - 使用 INSTANTIATE_TEST_CASE_P 的同一 Fixture 的不同实例

C++ 访问编号变量

javascript - node.js 在 Web 开发环境中的位置在哪里?

c++ - winnt.h 中大写 VOID 宏和 INT typedef 的用途

C++ 为本地时间设置日期

c++ - 避免双击调整窗口大小

c++ - 错误 : no member named 'rank_' in 'EndIndex'

c++ - Emscripten: algorithm.h 文件未找到

c++ - 如何使用 QModelIndex 访问 QStandardItemModel 及其数据?

c++ - 对结构体 vector 进行排序 C++