我目前正在研究一个小的标记器模板函数,该函数还将标记强制转换为不同的对象。这个工作非常好,只要我投射的所有结构都具有相同数量的项目。我想知道的是将函数转换为具有任意数量项的结构。对我来说,这个功能的瓶颈是这样的: 当它是固定数量(在这种情况下为三个)的项目时,我这样做了:
mystruct holder = {items[i], items[i+1], items[i+2]};
现在我的想法是能够使用不同的项目转换为结构,将所有项目放入一个数组(所有结构项都是相同的类型),并简单地将其初始化为:
float values[numItems];
for(int j=0; j<numItems; j++) values[j] = items[i+j]
mystruct holder = {values};
但不幸的是,你无法初始化这样的结构。有没有人知道如何实现这一目标? 谢谢!
答案 0 :(得分:2)
您可以使用以数组作为参数的构造函数。结构基本上是类,但默认成员可见公共而不是私有。