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];
    }
    ⋮
}