LINUX.ORG.RU

Два хедера указывают друг на друга, как быть?

 , ,


0

1

почему, кстати

#ifndef BOARD_H
#define BOARD_H

....

#endif

не справляется, если есть указания двух хедеров друг на друга, то ругается на untermined conditional derective?
если поставить #pragma once, то все норм.

ответ нашелся тут

★★

Последнее исправление: safocl (всего исправлений: 1)

хатя, даже #pragma once не помогает нормально сделать, при ней указывает, что не видит данные из другого хедера

safocl ★★
() автор топика
Ответ на: комментарий от Deleted

хоть внутри, хоть не внутри, если не внутри то воозбе пишет правомерно о бесконечном включении....
именно енти способы призываны как раз таки бороться с ентими бесконечными включениями, но почему не борятся?

safocl ★★
() автор топика

вбиваем в гугл untermined conditional derective, читает ответы и советы, следуем им, и не спамим больше на лорчике, в дальнейшем сначала долго и упорно гуглим ищем ответ, если не получается, отдыхаем потом опять долго и упорно гуглим, ... если через неделю не получается, только потом идем и спрашиваем на лорчике

anonymous
()
Ответ на: комментарий от safocl

Уже сказали: циклические зависимости.

Могу ещё добавить:

  • не делать const unique_ptr< > &, а передавать ссылки на сам тип;
  • не делать using namespace std в заголовках;
  • не мешать табы с пробелами.
xaizek ★★★★★
()
Ответ на: комментарий от xaizek

не мешать табы с пробелами.

ент я раньше не понял как настроить qt creator на табы.

не делать using namespace std в заголовках;

да енто я где то оставил, надо удалить.

не делать const unique_ptr< > &, а передавать ссылки на сам тип;

а вот енто почему?

safocl ★★
() автор топика
Последнее исправление: safocl (всего исправлений: 1)
Ответ на: комментарий от anonymous

и не спамим больше на лорчике

Ты што ты што
Тебя забанед какой-нибудь жоллхиф
Такое ошчушчение будто эти дауны им платят чтобы тут щитпостить

mos ★★☆☆☆
()
Ответ на: комментарий от safocl

а вот енто почему?

Это не даёт принимающей стороне больше чем если бы она получила ссылку. Но даже хуже: это требует помещение объекта в конкретный умный указатель, а толку от этого принимающему методу вообще никакого.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

т.е. если объект создан в динамической памяти через указатель, ентот указатель не имеет смысла передавать в функцию, а лучше его разыменовывать?

safocl ★★
() автор топика
Ответ на: комментарий от safocl

Да, нет смысла указывать как именно он хранится. Для передачи стоит использовать минимальный рабочий интерфейс, здесь это константная ссылка на сам объект класса.

xaizek ★★★★★
()
Ответ на: комментарий от anonymous

вбиваем в гугл untermined conditional derective, читает ответы и советы, следуем им, и не спамим больше на лорчике, в дальнейшем сначала долго и упорно гуглим ищем ответ, если не получается, отдыхаем потом опять долго и упорно гуглим, ... если через неделю не получается, только потом идем и спрашиваем на лорчике

... сказал анонимус, который подссыкивает делиться своими дельными советами от своего имени.

Xintrea ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.