我必须构建一个具有两种数据类型的程序(Procedural C ++)。一个叫Elem,它是矢量元素(单维数组)。一个名为Vector的包含一个unsigned int表示数组的大小,也包含Elem的数组本身。我似乎无法弄清楚构造这些的正确方法,以便它们可以工作,因为我以前从未使用过程c ++做过任何事情。
这就是我所拥有的
typedef Elem {
float Element;
}
typedef Vector {
unsigned int size = 0;
Elem* Array = new array[];
}
但我收到此错误
C++ requires a type specifier for all declarations
typedef Elem {
~~~~~~~ ^
以及
error: expected ';' after top level declarator
typedef Elem {
^
我在这里不知所措,任何帮助都将不胜感激!
答案 0 :(得分:5)
答案 1 :(得分:2)
typedef float Elem;
struct Vector {
unsigned int size;
Elem* Array;
};
您可以使用构造函数,析构函数,复制语义等定义完整的Vector类。或者只使用std::vector<Elem>
。
你可能会对C感到困惑,其中一个常见的习语是:
typedef struct tagVector {
...
} Vector;
但是这个冗长的语法在C ++中是不必要的。