在构建时将对象存储在向量中

Storing objects in a vector at the time of construction

本文关键字:向量 存储 构建 对象      更新时间:2023-10-16

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

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

非常感谢

目前,您的代码不编译。首先,类需要在末尾使用分号

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 的副本