【问题标题】:Populating a vector of class pointers within constructor在构造函数中填充类指针向量
【发布时间】:2015-08-23 04:41:55
【问题描述】:

我看过其他关于指向类对象指针的向量的帖子。但是,是否可以使用“this”指针在同一个类的构造函数中填充这个向量?我收到链接器错误。我离基地很远吗?:

// Object.h
class Object
{
....
static vector<Object*> gObjects;
}

// Object.cpp
Object::Object()
{
  gObjects.push_back(this);
}

// Main.cpp
Object::gObjects.size()

【问题讨论】:

    标签: c++ class pointers vector


    【解决方案1】:

    是否可以在同一个类的构造函数中使用“this”指针填充这个向量?

    是的,有可能。

    链接器错误与指针或将this放在向量中无关,只是因为您没有定义静态成员。

    正如https://gcc.gnu.org/wiki/VerboseDiagnostics#missing_static_const_definition 中所述,您需要声明定义静态成员。

    要修复它,只需将其添加到 Main.cpp:

    std::vector<Object*> Object::gObjects;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 2013-01-16
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2011-06-03
      相关资源
      最近更新 更多