C++ c++;:创建元组&;添加元素
我有几个自定义类的对象,我尝试创建一个类,它可以使用C++ c++;:创建元组&;添加元素,c++,stdtuple,C++,Stdtuple,我有几个自定义类的对象,我尝试创建一个类,它可以使用std::tuple存储我以前的所有对象。不幸的是,我对C++元组很陌生。以下是我迄今为止所做的工作: class Universe { public : std::tuple<Plain, Point, Rectangle> all_things; Universe() { this->all_things = std::make_tuple(); }; templat
std::tuple
存储我以前的所有对象。不幸的是,我对C++元组很陌生。以下是我迄今为止所做的工作:
class Universe {
public :
std::tuple<Plain, Point, Rectangle> all_things;
Universe() {
this->all_things = std::make_tuple();
};
template <class T>
void add( T obj ) {
this->all_things.append(obj);
};
}
类宇宙{
公众:
std::tuple all_things;
宇宙(){
这->所有东西=std::make_tuple();
};
模板
无效添加(T obj){
这个->所有东西。附加(obj);
};
}
这是我得到的错误(与使用空构造函数时的错误相同):
错误:调用'std::tuple::tuple()'时没有匹配的函数
18 |宇宙(){
另外,我想知道是否有任何元组方法用于添加内容。对不起,我还没有在网上找到任何有用的信息…您看到的错误表明元组包含的一个成员不是默认可构造的。在这种情况下,您必须使用适当的参数初始化成员元组以使用非定义元组成员的ault构造函数 另外,我想知道是否有任何元组方法来添加一个东西
不可以。元组包含从其生命周期开始到结束的所有成员。无法添加或删除元素。您看到的错误意味着元组包含的其中一个成员不是默认可构造的。在这种情况下,必须使用适当的参数初始化成员元组以使用非defa元组成员的ult构造函数 另外,我想知道是否有任何元组方法来添加一个东西 不。元组包含从其生命周期开始到结束的所有成员。无法添加或删除元素
error: no matching function for call to 'std::tuple<Plain, Point, Rectangle>::tuple()'
18 | Universe() {