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 ответов

68 просмотров

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

Добавьте в конструктор 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
Главный тезис: Илья +- профессионал 😂

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта