170 похожих чатов

Https://Pastebin.Com/GCv4ZnG0 //workarea.h https://pastebin.com/uAbL6KGx //workarea.cpp https://pastebin.com/dK3wtdY1 //main.h https://pastebin.com/gCv4ZnG0 //main.cpp В файле workarea.cpp я создал

поле workarea_yield - которое представляет из себя Box (один из виджетов библиотеки FLTK). Но не смотря на то, что класс в котором я с ним работал наследовался от класса в котором создавалось окно на котором должен быть был Box , ничего не отобразилось. Поэтому я создал workarea.h и оставил поле там, чтобы использовать его в файле, где я создаю остальной пользовательский интерфейс для программы. Но при попытке использовать его в main.cpp , но программа его не видит. Если я сделаю его статическим, жалуется уже компилятор. К тому же я предполагаю, что это поле окажется пустым, поскольку его реализация находится в workarea.cpp . Каким вообще образом это организовывается? В целом, структура проекта уже выглядит достаточно запутанной.

Похоже мне нужно какое-то видео или руководство по организации проекта, чтобы почитать пол дня и чтобы получилось разобраться с сегодняшними проблемами

Буду очень благодарен за помощь

30 ответов

102 просмотра

у вас три уникальные ссылки и четыре уникальных названия файла

Добавьте в конструктор Workarea аргументы, как у Photoeditor и прозрачно передайте их в конструктор Photoeditor Workarea :: Workarea(int w, int h, const char* title) : Photoeditor(w, h, title) { // ... } Эту строку удалите Photoeditor editor(640, 480, "photoeditor");

Андрей- Автор вопроса
Alexander Pshenichnikov
Добавьте в конструктор Workarea аргументы, как у P...

А где в таком случаи создавать экземпляр класса и как именно это поможет?

Андрей- Автор вопроса
Андрей
Photoeditor

Он создастья вместе с Workarea, потому что вы унаследовали Workarea от Photoeditor

Андрей- Автор вопроса

Вы сказали удалить строку Photoeditor editor(640, 480, "photoeditor"); , но ведь она инициализирует окно (указывает ширину, высоту и название). Где теперь это делать?

Андрей
Вы сказали удалить строку Photoeditor editor(640,...

У вас будет строка Workarea workarea(640, 480, "photoeditor");

Андрей- Автор вопроса
Alexander Pshenichnikov
У вас будет строка Workarea workarea(640, 480, "p...

Очень разумное решение. Но всё равно Box почему-то не отображается, а вот окно с кнопкой отображается

Андрей- Автор вопроса
Alexander Pshenichnikov
Уже какой-то прогресс

Нет, окно и раньше отображалось

Андрей- Автор вопроса
Alexander Pshenichnikov
Уже какой-то прогресс

Я могу скинуть изменения

Андрей
Я могу скинуть изменения

Может надо еще вызвать? workarea_yield->show();

Андрей- Автор вопроса
Alexander Pshenichnikov
Может надо еще вызвать? workarea_yield->show();

Всё исправил! Спасибо всем за помочь!

Андрей
Всё исправил! Спасибо всем за помочь!

Так расскажите, всем же любопытно, как исправили

Андрей- Автор вопроса
Alexander Pshenichnikov
Так расскажите, всем же любопытно, как исправили

Не уверен, что всем любопытно, но. Поставил перед всеми родительскими классами public, убрал метод show() из конструктора Photoeditor и поставил в конструктор Workarea

Андрей- Автор вопроса
Alexander Pshenichnikov
Так расскажите, всем же любопытно, как исправили

Поле родителя родителя будучи публичным без явного указания обратного становится приватным для внука?

Я ж тебе сказал - ПИШИ ВСЁ В ОДНОМ ИСХОДНОМ ФАЙЛЕ!

Андрей- Автор вопроса
Гилимханов Денис
у классов по умолчанию приватное наследование

Да, но поскольку я могу использовать его непосредственно в своём классе при наследовании , я предполагаю там явно указан модификатор методов, которые я использую в своём классе

Андрей- Автор вопроса
Ilya Zviagin
Я ж тебе сказал - ПИШИ ВСЁ В ОДНОМ ИСХОДНОМ ФАЙЛЕ!

Как я и говорил ранее, я пишу его прежде всего не для того, чтобы сделать программу, не для того, чтобы поставить галочку, а чтобы - научится. Самый главный пробел в моих знаниях - это работа с проектом в котором несколько модулей. И поскольку я: прежде всего делаю обучающий проект - для меня нерациональным будет пытаться делать проект в одном файле и всё равно не научится спустя столько времени использовать проект с несколькими файлами

Андрей
Как я и говорил ранее, я пишу его прежде всего не ...

Напиши сначала В ОДНОМ ФАЙЛЕ , может что-то поймёшь. Потом будешь разбивать на кусочки. И тоже что-то поймёшь. Так ты не поймёшь ничерта никогда, потому что никакого руководства по организации проектов в С++ нет.

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

Как только приватно унаследовались, вы скрыли поля и методы родителя от всех Для внука в том числе

Андрей- Автор вопроса
Ilya Zviagin
Напиши сначала В ОДНОМ ФАЙЛЕ , может что-то поймёш...

У меня за всё время, возникла только одна проблема связанная с понимание библиотеки FLTK и то, она бы не возникла, если бы я не писал проект в нескольких файлах. В итоге написав его в одном файле, особых проблем (кроме дискомфорта, проект не маленький) у меня не возникнет. Создав проект в одном файле, мне ко всему придётся мучатся и не делать всё "с чистого листа", а растаскивать готовый проект по разным файлам из-за чего он будет ломаться ещё обильнее. Те вещи, которые помогли мне сегодня, я надолго усвоил и сталкивался с теми же вещами о которых здесь спрашивал повторно, но уже знал, как их решать. На этом и строится обучение - учится на собственных ошибках или если мои знания недостаточно глубокие, чтобы предположить эту ошибку. Для этого я и нахожусь в чате для новичков, потому, что загуглить эти проблемы сложно, смотреть кучу видео в надежде найти ответ очень долго, таким образом те - кто желали помочь мне , помогли и я усвоил материал намного быстрее. Вы можете не понять прикола "не тратить время на кучу видео", но если вообще проблема, которую просто невозможно решить в одиночку? Даже самая сложная проблема, основывается либо на отсутствии глубинных знаний, либо на баге (чаще всего в первом), но вы - в отличии от меня, задаёте сложные вопросы, поскольку вы +- профессионал, но вы тоже могли бы просто покопаться в гугле, посмотреть кучу видео, потратить на это пол дня или день и всё равно добиться ответа без помощи других людей. Но для этого и созданы чаты для новичков, не чтобы он пустовал, поскольку где-то в дебрях интернета спустя день можно найти информацию и все день там копаются, без мысли о том, что можно спросить совета у знающих

Андрей
У меня за всё время, возникла только одна проблема...

И FLTK тебе не нужно. Вообще, графика, сеть, игры, - не нужны. Изучай язык сначала.

Андрей- Автор вопроса
Ilya Zviagin
И FLTK тебе не нужно. Вообще, графика, сеть, игры,...

Я изучил его достаточно, чтобы наконец-то пожелать сделать хоть что-то. К тому же, мне нужно зарабатывать хоть какие-то деньги, бодай на простых проектах

Андрей- Автор вопроса
Alexander Pshenichnikov
Главный тезис: Илья +- профессионал 😂

Нужно было написать твёрдо Илья Профессионал - чтобы точно и метко победить в этом разговоре

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта