Будучи новичком в C ++, я часто сталкиваюсь с проблемой объявления атрибутов класса внутри заголовочного файла, которым требуется больше информации, чем просто имя, например массивы и объекты других классы с конструкторами.
Вот пример
SomeClass.h:
#include "OtherClass.h"
class SomeClass {
int num; // works fine
float arr[]; // produces an error because size is not declared
OtherClass obj; // produces an error because the constructor parameters are not passed in
public:
void setup();
void update();
};
SomeClass. cpp:
#include "SomeClass.h"
void SomeClass::setup() {
num = 10; // easy peasy, works!
arr = float some_arr[5 * num]; // error
// Fill in the array
for (int i = 0; i < 5 * num; i += num) {
ass[i] = 12;
}
// Fill in the class attributes
obj = {120, 40}; // error
}
void SomeClass::update() {
// Update stuff
}
В случае массива arr
как я могу объявить массив, если я не знаю его размер на момент объявления в файле заголовка?
Как можно объявить объекты класса с конструкторами в файле заголовка, не передавая неизвестные параметры в тот момент?
Спасибо.