c ++中关于表格式的建议

时间:2013-07-17 15:52:00

标签: c++

我需要为当前代码添加表格格式。我有一些更简单的代码版本。

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 ++专家,因此任何有关如何进一步处理的输入或任何其他想法/输入非常有帮助

1 个答案:

答案 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来解决这个问题......