Я работаю над заданием класса, которое началось с малого, поэтому у меня все было в одном файле. Теперь он стал больше, и я пытаюсь отдельно скомпилировать main, функции и классы (поэтому все классы объединены в один .h и один .cpp). У меня есть один класс B, который является родителем для многих других и идет первым в файле. Один из его членов данных не работает сейчас, когда я использую отдельную компиляцию, которая вызывает десятки ошибок.
В .ч
class A;
class B {
public:
B (){}
A* myptr;
void whatever();
vector<A*> myAs; //this one is the problem
};
In .cpp
void B::whatever() {
vector<A*> newvector; //no problem!
myptr = &something; //no problem!
for (vector<A*>::iterator iter = myAs.begin(); iter != myAs.end(); ++iter) {
//error!
}
}
Я получаю ошибки: либо «myAs не был объявлен в этой области», либо «класс B не имеет члена myAs».
Я включил , объявленный заранее класс A, как вы видите выше, и я определенно не забыл включить .h в начало .cpp! Есть ли что-то о векторах или классах и отдельной компиляции, которые я не понимаю? Это в Xcode, кстати.