在施工时将对象存储在矢量中

时间:2013-08-22 09:01:34

标签: c++ object constructor stdvector

我正在为项目编写模块,我希望界面尽可能简单。我想在构造它们时将对象存储在向量中。 也就是说,这正是我一直在尝试使用方法和独立函数的许多不同方式,使用静态声明,但没有一个工作;

vector<trialclass> vektor;
class trialclass {
public:
    trialclass() {
        vektor.push_back(*this);
    }
}

非常感谢

1 个答案:

答案 0 :(得分:0)

目前,您的代码无法编译。首先,课程最后需要一个分号

vector<trialclass> vektor;
class trialclass {
public:
    trialclass() {
        vektor.push_back(*this);
    }
};
^^^

其次,vektor的声明不知道trialclass是什么。 这种重新安排解决了问题

class trialclass {
public:
    trialclass();
};

std::vector<trialclass> vektor;

trialclass::trialclass() {
    vektor.push_back(*this);
}

这样编译和“工作”的意思是vektor最终会为每个trialclass构建一个项目,但请注意这些是trialclass

的副本