C ++ Class Refinition [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ Class Refinition [дубликат]

Сообщение Anonymous »

Новичок в C ++ здесь. Я столкнулся с этой проблемой в более крупном проекте, но я попытался сделать самый маленький код, который показал бы эту ошибку. Вот это: < /p>

Код: Выделить всё

#include "b.cpp" // comment these lines to make everything work
#pragma once

class A{
B *other = nullptr; // comment these lines to make everything work

void run();
};
< /code>
a.cpp

Код: Выделить всё

#include 
#include "a.h"
#pragma once

void A::run() {
std::cout 
b.cpp

Код: Выделить всё

#include 
#include "b.h"
#pragma once

void B::go() {
std::cout 
But if you comment the two lines in a.h file, you get the desired Hello world output. So as far as I understand, the compiler loads main.cpp -> a.cpp -> a.h -> b.cpp -> b.h -> a.cpp
и вот рекурсия. Я проверил пару подобных вопросов и добавил #pragma One только для .cpp файлов, только .h One или все из них, и ни один из вариантов не сработал. Я также попробовал старый стиль < /p>
#ifndef smth
#define smth
// the code
#endif
< /code>
but it didn't work either. What should I try next?


Подробнее здесь: https://stackoverflow.com/questions/795 ... definition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»