如何在其构造函数中向对象添加(指针)对象?

时间:2016-05-17 16:40:52

标签: c++ declaration forward-declaration

#include <string>
#include <vector>
using namespace std;
struct object{
    int value;
    string name;
    object(string str, int val):name(str), value(val){
        objList.push_back(this);
    }
};

vector<object*> objList;

我想在创建对象时添加对象的指针,但是程序给出错误:“使用未声明的标识符'objList'”,我将objList的声明移到了对象的定义上,并且它给出了警告:“使用未声明的标识符'对象'“。如何在创建对象时添加对象的指针?

1 个答案:

答案 0 :(得分:0)

尝试以下

using namespace std;

vector<struct object*> objList;

struct object{
    int value;
    string name;
    object(string str, int val): value(val), name(str) {
        objList.push_back(this);
    }
};

using namespace std;

struct object;

vector<object*> objList;

struct object{
    int value;
    string name;
    object(string str, int val): value(val), name(str) {
        objList.push_back(this);
    }
};