Информация об изменениях

Сообщение Пример кода от 25.12.2021 11:13

Изменено 25.12.2021 11:15 maks1180

Re: Большой минус С++
Вот такой код не получается скомпилировать, если не выносить функции в другой файл. На строку "m_v = B::GetV()" gcc ругается.
Хотя я не понимают, почему gcc не хочет в 2 этапа это сделать:
1) сначала пробежаться и составить объявления всех классов и функций
2) скомпилировать функции

class B;

class A {
public:
void DoSomething() {
m_v = B::GetV();
}
private:
int m_v;
};

class B {
public:
static int GetV() { return 1; }
void Do() {
A a; a.DoSomething();
}
};

Может я что-то не понимаю ?
Пример кода
Вот такой код не получается скомпилировать, если не выносить функции в другой файл. На строку "m_v = B::GetV()" gcc ругается.
Хотя я не понимают, почему gcc не хочет в 2 этапа это сделать:
1) сначала пробежаться и составить объявления всех классов и функций
2) скомпилировать функции

class B;

class A {
public:
void DoSomething() {
m_v = B::GetV();
}
private:
int m_v;
};

class B {
public:
static int GetV() { return 1; }
void Do() {
A a; a.DoSomething();
}
};

Может я что-то не понимаю ?