C++ 如何使模板类对象成为元组? class-Farmacie { 弦固有; 细绳灯罩; 国际安加加蒂; 矢量利润; 公众: Farmacie(){} }; 在线农业大学:公共农业大学 { 弦固有; 弦网; 维兹塔托里国际酒店; 国际折扣; 公众: Farmacie_online(){} Farmacie_在线(字符串a、字符串b、整数c、整数d){ 这->proprietar=a; 这个->web=b; 这->nr_vizitatori=c; 此->折扣=d; } }; 模板 类手势动作 { 静态整数指数; int-id; T*日期; 公众: GestionareFarmacii(int nr,int id){this->id=id;this->date=new T[nr];} GestionareFarmacii运算符+=(const Farmacie_online&f) { 此->日期[索引].first=f.web; 此->日期[索引].second=f.nr_vizitatori; 此->日期[索引].third=f.折扣; 索引++; 归还*这个; } }; int main() { Farmacie_online f(“blabla”,“www.fs”,25,50); GestionareFarmacii农场(10,23); 农场+=f; }
我无法从互联网上了解如何使用这些东西,必须使用类,模板中的C++ 如何使模板类对象成为元组? class-Farmacie { 弦固有; 细绳灯罩; 国际安加加蒂; 矢量利润; 公众: Farmacie(){} }; 在线农业大学:公共农业大学 { 弦固有; 弦网; 维兹塔托里国际酒店; 国际折扣; 公众: Farmacie_online(){} Farmacie_在线(字符串a、字符串b、整数c、整数d){ 这->proprietar=a; 这个->web=b; 这->nr_vizitatori=c; 此->折扣=d; } }; 模板 类手势动作 { 静态整数指数; int-id; T*日期; 公众: GestionareFarmacii(int nr,int id){this->id=id;this->date=new T[nr];} GestionareFarmacii运算符+=(const Farmacie_online&f) { 此->日期[索引].first=f.web; 此->日期[索引].second=f.nr_vizitatori; 此->日期[索引].third=f.折扣; 索引++; 归还*这个; } }; int main() { Farmacie_online f(“blabla”,“www.fs”,25,50); GestionareFarmacii农场(10,23); 农场+=f; },c++,class,templates,C++,Class,Templates,我无法从互联网上了解如何使用这些东西,必须使用类,模板中的id对于整个模板来说只是一个常量。我知道+=是非常错误的,我不知道如何做到这一点,我试图展示我基本上想要做的事情,向模板对象数组添加一个farmacie_online对象,就像std::tuple没有像这样的访问器。第一个和第二个。相反,您需要使用std::get(yourTuple)来访问每个元素 如果要单独分配每个项目,可以执行以下操作: class Farmacie { string proprietar; stri
id
对于整个模板来说只是一个常量。我知道+=是非常错误的,我不知道如何做到这一点,我试图展示我基本上想要做的事情,向模板对象数组添加一个farmacie_online
对象,就像std::tuple
没有像这样的访问器。第一个和第二个。相反,您需要使用std::get(yourTuple)
来访问每个元素
如果要单独分配每个项目,可以执行以下操作:
class Farmacie
{
string proprietar;
string denumire;
int angajati;
vector<int>profit;
public:
Farmacie(){}
};
class Farmacie_online:public Farmacie
{
string proprietar;
string web;
int nr_vizitatori;
int discount;
public:
Farmacie_online(){}
Farmacie_online(string a,string b,int c, int d){
this->proprietar=a;
this->web=b;
this->nr_vizitatori=c;
this->discount=d;
}
};
template <typename T,typename ...rest>
class GestionareFarmacii
{
static int index;
int id;
T* date;
public:
GestionareFarmacii(int nr, int id){this->id=id;this->date=new T[nr];}
GestionareFarmacii operator+=(const Farmacie_online& f)
{
this->date[index].first=f.web;
this->date[index].second=f.nr_vizitatori;
this->date[index].third=f.discount;
index++;
return *this;
}
};
int main()
{
Farmacie_online f("blabla","www.fs",25,50);
GestionareFarmacii <tuple<string,int,int>>farm(10,23);
farm+=f;
}
请注意,您可以将模板设置为:
date[index] = std::make_tuple(f.web, f.nr_vizitatori, f.discount)
模板
GF类
{
⋮
元组*日期;
⋮
GF(内部编号,内部id)
{
⋮
日期=新元组[nr];
}
⋮
}
在你的主要部分中,你可以将其命名为GF farm(10,23)
我试图理解“如何将模板类对象作为元组?”的含义,而代码对我没有帮助。你说的是std::tuple
?所以基本上我需要main()中的代码来工作,比如有多个farmacie\u在线
对象,并制作gestationerfarmacii farm(10,23)代码>类似这样的内容,然后将许多farmacie\u online
对象添加到farm
中。它需要是向量类型的东西。为什么要在模板中使用tuple
?好像你想把你的日期
变成元组
好吧,我一路没看到那一行。所以,T=tuple
和rest…
是空的。我强烈建议不要在这里(或任何地方)使用原始指针。元组向量会更安全、更容易使用。@Kyle我也同意这一点。我之所以使用原始指针,是因为op有这个问题,他的问题是关于使用tuple
和“如何制作模板…”
date[index] = std::make_tuple(f.web, f.nr_vizitatori, f.discount)
template<typename ...T>
class GF
{
⋮
tuple<T...>* date;
⋮
GF(int nr, int id)
{
⋮
date = new tuple<T...>[nr];
}
⋮
}