c++ - 如何实现具有成员变量向量的 A 类的构造函数,这是它的基本功能,使用initializer_list和模板?
问题描述
所以问题是:
- Stan 类必须有一个构造函数,使其能够接收和存储无限数量的元素,并且必须使用模板来实现。另外,在 main 函数中演示它
- Stan 类必须有一个构造函数,使其能够接收和存储无限数量的元素,并且必须使用初始化列表来实现。另外,在 main 函数中演示
- 将 Stan 类放入命名空间 Zgrada
- 让我们假设有两种类型的 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;
}```
解决方案
推荐阅读
- angular - 无法读取 null 的属性“emailVerified” - IONIC 和 FIREBASE
- python - 将 SED 命令转换为 linux 命令
- windows - 在 Windows 10 上使用空格的目录中运行包时出现问题
- clojure - 如何在 Clojure 中模拟来自自定义 IP 地址的请求?
- reactjs - 将 React 与 KeyCloak 一起使用 - 你真的需要存储 JWT 吗?
- javascript - 将字符串数组转换为具有一个属性的对象数组?
- c++ - Lua嵌入C++,如何处理用户值
- multiplayer - Raft 与 CRDT 在协作编辑方面如何比较?
- c - 当 char 数据类型在 scanf 中获取带有 %d 的整数值时会发生什么?
- r - 如何更改R中点的大小