Как typedef работает вместо struct / class для процедурного c ++?

Я должен построить программу (процедурный 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 {
^

Я в недоумении, любая помощь будет оценена!

1

Решение

Ты не говоришь

typdef Elem {
...
};

Правильный путь

struct Elem {
...
};

Обратите внимание также на точку с запятой ; в конце декларации.

Смотрите также Объявление класса для некоторых небольших примеров.

5

Другие решения

typedef float Elem;

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

Вы можете определить полноценный класс Vector с помощью конструктора, деструктора, копировать семантику и т. Д. Или просто использовать std::vector<Elem>,


Вы можете быть смущены C, в котором распространена идиома:

typedef struct tagVector {
...
} Vector;

Но этот подробный синтаксис не нужен в C ++.

2

По вопросам рекламы [email protected]