,这是它的基本功能,使用initializer_list和模板?,c++,templates,vector,initialization,derived-class"/>

首页 > 解决方案 > 如何实现具有成员变量向量的 A 类的构造函数,这是它的基本功能,使用initializer_list和模板?

问题描述

所以问题是:

  1. Stan 类必须有一个构造函数,使其能够接收和存储无限数量的元素,并且必须使用模板来实现。另外,在 main 函数中演示它
  2. Stan 类必须有一个构造函数,使其能够接收和存储无限数量的元素,并且必须使用初始化列表来实现。另外,在 main 函数中演示
  3. 将 Stan 类放入命名空间 Zgrada
  4. 让我们假设有两种类型的 Stans - Apa 和 Gar。在 main 函数中,有必要通过实现 getVrsta() 来演示多态性;它返回两种类型之一

我不知道如何做更多的事情。谢谢您的帮助!

#include <string>
#include <vector>
#include <functional>
#include <algorithm>
#include <iterator>
using namespace std;

int Element::brV = 0;



    class Element {
    public:
        string naziv;
        double obujam;
        static int brV;
        Element(string n, double o) : naziv(n), obujam(o) {
    
            if (o > 3.) brV++;
        }

        int getVelikiElementi(){
            return brV;
        }

        void virtual GetVrsta(){
            cout << "Vrsta Stana: ";
        }
    };



    template <class T>               //I think i got the templates_init right
    class Stan : public Element { 
    public:
        vector<Element> Elementi;

        template<class...T>
        Stan(T...arg) : Elementi({arg...}){} 


        Stan(initializer_list<Elementi>) : Element (){} // But this most certainly not
        
        void GetVrsta(){
            
        }
    };
    

int main () {

    Element X("a", 3.);
    Element Y("b", 2.);
    Element Z("c", 1.);

    vector <Element*> E={X,Y,Z}; // initilizer_lista_const_call
    
    return 0;
}```

标签: c++templatesvectorinitializationderived-class

解决方案


推荐阅读