typedef如何代替Procedure c++的struct/class工作

How does typedef work in place of struct/class for Procedural c++?

本文关键字:struct class 工作 c++ 何代替 Procedure typedef      更新时间:2023-10-16

我必须构建一个具有两种数据类型的程序(过程C++(。一个叫做Elem的元素,它是向量(一维数组(的一个元素。一个名为Vector的数组,它包含一个无符号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 {
            ^

我在这里不知所措,任何帮助都将不胜感激!

你不说

typdef Elem {
...
};

正确的方法是

struct Elem {
...
};

还要注意声明末尾的分号;

有关一些小示例,请参见类声明。

typedef float Elem;
struct Vector {
    unsigned int size;
    Elem* Array;
};

您可以用构造函数、析构函数、复制语义等定义一个完整的Vector类,或者只使用std::vector<Elem>


你可能会被C弄糊涂,其中一个常见的习语是:

typedef struct tagVector {
    ...
} Vector;

但是这种冗长的语法在C++中是不必要的。