【问题标题】:Access non-static class members of the latest created class instance访问最新创建的类实例的非静态类成员
【发布时间】:2014-04-25 10:40:22
【问题描述】:

我想从静态方法中访问非静态类成员。它还定义了应该使用哪个类的实例进行访问。它是最近创建的实例。

我尝试通过使用静态指针作为该类的成员来做到这一点,该指针指示最近 inastatiated 的对象是什么。每次我们实例化一个对象时,类构造函数都会设置这个指针。

代码如下:

class Klasse
{
public:
Klasse()
{
    me = this; //an error is thown here:"undefined reference to `Klasse::me'"
    nummer = eins;
}


private:
static Klasse* me;
enum
{
    eins = 1,
    zwei = 2
}nummer;

static void SMethod()
{
    me->nummer= zwei;
}
};


int main(void)
{
  int i = 0;

  Klasse instanz;
  //...
}

有人知道,为什么会抛出错误“未定义对 `Klasse::me' 的引用”?

【问题讨论】:

    标签: c++


    【解决方案1】:

    你错过了这个:

    Klasse* Klasse::me = nullptr;
    

    静态数据成员必须在 .cpp 文件中定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-02
      • 2019-07-13
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 2018-10-05
      相关资源
      最近更新 更多