我需要为当前代码添加表格格式。我有一些更简单的代码版本。
class A {
public:
A():x(0) {
} int getValue() {
return x;
}
private:
int x;
};
class B {
public:
B():y(0) {
} int getValue() {
return y;
}
private:
int y;
};
class C {
public:
C():z(0) {
} int getValue() {
return z;
}
private:
int z;
};
class D {
public:
D(A x, B y, C z) {
a = x;
b = y;
c = z;
} A getA() {
return a;
}
B getB() {
return b;
}
C getC() {
return c;
}
private:
A a;
B b;
C c;
};
typedef enum {
TABLE_A = 0,
TABLE_B,
TABLE_C,
TABLE_D,
TABLE_MAX
} table_index;
typedef struct tableInfo_tag {
table_index id, D d;
} tableInfo;
tableInfo gtable[table_index::TABLE_MAX] = {
{TABLE_A, {1, 2, 3}},
{TABLE_A, {4, 5, 6}},
{TABLE_A, {7, 8, 9}}
}
但我不知何故我不能在表D中给出值,因为它接受构造函数。我需要有这种表格格式,因为我可以提供大范围的值集合并根据特定条件获取集合...我不是c ++专家,因此任何有关如何进一步处理的输入或任何其他想法/输入非常有帮助
答案 0 :(得分:0)
typedef struct tableInfo_tag {
table_index id;
D d;
} tableInfo;
tableInfo gtable[TABLE_MAX] = {
{TABLE_A, D(A(),B(),C())}
};
再写一些c很有趣;)
typedef struct tableInfo_tag {
table_index id;
int d_len;
D d[8];
} tableInfo;
tableInfo gtable[TABLE_MAX] = {
{TABLE_A, 2, {D(A(),B(),C()),D()}}
};
这里^^^ d是一个数组,但它应该是静态分配的 - 这就是为什么它的大小应该被指定... D的可用大小是未知的,我添加了d_len来解决这个问题......