【发布时间】:2012-07-26 13:10:45
【问题描述】:
我正在学习ns-3 tutorial。我看不懂下面的代码sn-p:
class MyObject : public Object
{
public:
static TypeId GetTypeId (void)
{
static TypeId tid = TypeId ("MyObject")
.SetParent (Object::GetTypeId ())
.AddConstructor<MyObject> ()
.AddTraceSource ("MyInteger",
"An integer value to trace.",
MakeTraceSourceAccessor (&MyObject::m_myInt))
;
return tid;
}
MyObject () {}
TracedValue<int32_t> m_myInt;
};
据我了解,MyObject::m_myInt 是从静态方法访问非静态类成员 m_myInt 并且 & 获取该成员的地址。此代码已成功编译并执行。怎么可能?静态方法使用什么类的实例?
【问题讨论】:
-
这实际上是一个指向成员的指针(不是指向实例成员的指针)。见this question;它有一些很好的答案。
标签: c++ class pointers static non-static