Я должен построить программу (процедурный C ++), который имеет два типа данных. Один называется Elem, который является элементом вектора (одномерный массив). и один по имени Vector, который содержит беззнаковое целое для размера массива, а также массив самого Элема. Кажется, я не могу найти правильный способ структурировать их так, чтобы они работали, так как я никогда ничего раньше не делал с процедурным 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 ++.