这个语句返回什么
What does this statement return?
假设我有一个这样的类:
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;
。我很困惑,它会返回指向该成员的指针吗?如果是,如何在所有者的实例中使用它?
它确实返回了成员指针。您可以使用它来间接访问m_Id
,如下所示:
long Owner::* ptrMem = &Owner::m_Id;
Owner owner;
owner.*ptrMem = 10;
cout << owner.m_Id << endl;
此代码在m_Id
可访问的上下文中工作,例如在成员函数中。
这个例子不太有趣,因为您的类没有long
类型的其他成员。在存在多个这样的成员的情况下,成员指针变得更有价值:您可以将绑定到特定成员的操作推迟到运行时。
相关文章:
- 什么时候在C++中返回常量引用是个好主意
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 我可以使用什么来停止循环而不是"返回 0"?
- 这个返回元素位置的基于循环的函数有什么问题?
- 查找不存在的键时,unordered_map返回什么
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 如果我在 const 函数上使用指针,我可以返回什么?
- 基本的 c++ 问题:如果我在函数中创建某些内容并返回它会发生什么?
- 什么 /可以/ 你从一个函数返回. 并期望它在到达时还活着?
- 使用枚举作为条件,if 条件将返回什么,真或假?
- 当我使用 void 函数的返回值(通过强制转换函数指针)时,究竟会发生什么?
- 返回引用实例和非引用实例(return mystr & vs mystr)之间的区别是什么?
- 我应该返回什么而不是标准::shared_ptr<>&?
- 返回类型在 C++ OOP 中是什么意思
- 什么 & 返回左值或右值?
- 实际上什么返回类型有一个新的
- 链表缓冲区;应该插入什么返回
- 指针赋值应该使用什么返回类型?