0

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

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++ 专家,所以关于如何进一步进行的任何输入或任何其他想法/输入真的很有帮助

4

1 回答 1

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

于 2013-07-17T16:59:36.043 回答