Итак, давайте начнем с одного из основ: в C ++ структуры - это классы, которые по умолчанию являются открытыми.
То, что у вас выглядит как C, так что я собираюсь предположить, что это ваш базовый язык.
Это означает, что у вас есть доступ ко всей широте поведенческой конфигурации класса в структуре.
Таким образом, вы можете переписать ее примерно так:
struct Car {
unsigned int year;
char* specs;
Car(int year) : year(year) {} //Constructor
};
struct Item {
int id;
Car *myData;
Item(int id, Car* car) : id(id), myData(car) {} // Constructor
~Item() { delete myData; } // Destructor. This prevents a potential data leak.
void buildCar() { std::cout << "address of car1 = " << myData; } // Member Function
};
int main() {
Item item1(1, new Car(2019));
item1.buildCar();
}
Если вам интереснонекоторые из этих вещей, ищите синтаксис конструктора, списки инициализатора конструктора и оператор new
, они очень важны для C ++.