Fl_Box* workarea_yield = new Fl_Box(workarea_x, workarea_y, workarea_width, workarea_height);
workarea_yield->box(FL_BORDER_BOX);
};
main.cpp :
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>
class Photoeditor:Fl_Window {
public:
int workarea_x;
int workarea_y;
int workarea_width;
int workarea_height;
Photoeditor (int w, int h, const char* title) : Fl_Window (w, h, title)
{
workarea_x = 10;
workarea_y = 30;
workarea_width = (w - workarea_x) - 10;
workarea_height = (h - workarea_y) - 10;
Fl_Button* button = new Fl_Button(10, 10, 60, 15, "image");
show();
};
};
int main()
{
Photoeditor editor(640, 480, "photoeditor");
Fl::run();
return 0;
}
main.h :
#include "FL/Fl_Window.H"
class Photoeditor:Fl_Window {};
Почему-то поля класса Photoeditor не доступны. Как вообще это нужно организовывать?)
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
В закрепе почитай инструкцию
пока надо просто почитать учебники по ООП в C++, ну или ошибки исправить, если писал с листа.
Где именно?)
Блин, я вроде понимаю как это работает. но возможно глубины не хватает. По сути вещей, это мой первый полноценный проект строится
Полистай закреп
Полистал, и что там?)
https://t.me/supapro/954241
Стикер
Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Да фиг с ним, с форматированием, плюнь. Не умеешь - учись на маленьком примерчике.
Ладно, пойду поищу информацию в интернете по своей теме)
Я тебе ответил по сути.
Ладно, я так понял, это нужно сделать по другому, чтобы это работало. Но как это обычно делается?
Что сделать нужно? То как у тебя сейчас сделано должно работать никаких ошибок быть не должно если тебе не получается так сделать то ты шли код и ошибки какие выдаются
Он просто не видит поля из класса Photoedotor . Это весь код. При этом сам класс Photoeditor он видит
Почитай неплохое введение в книгу "Шаблоны проектирования" банды четырех. Там вот очень наглядный пример о текстовом редакторе и сколько архитектурных проблем приходится решать при написании.
Ты русский язык понимаешь? Присылай код и транскрипт компиляции со всеми ошибками
Та не могу я сейчас целую дополнительную книгу читать. Я должен уже к практике наконец-то приходить
это было сильно...
Как именно прислать код? Файлы здесь нельзя перекидывать, 3 странички pastebin ?
Ну тогда не читай, и в чаты не ходи
Так я просто помощи попросил. Или для того, чтобы прийти в чат для новичков, я должен быть профессионалом?
Кончай базар уже и шликот
Вас искренне хотят здесь помочь, правда. Просто слушайте внимательно, что вас просят сделать. Помогите другим помочь вам
https://pastebin.com/JxJpQLMs //workarea.cpp https://pastebin.com/gCv4ZnG0 //main.cpp https://pastebin.com/dK3wtdY1 //main.h Ошибки: "Use of undeclared identifier 'workarea_x'", "Use of undeclared identifier 'workarea_y'", "Use of undeclared identifier 'workarea_width'", "Use of undeclared identifier 'workarea_height'", "Unknown type name 'workarea_yield'", "Expected member name or ';' after declaration specifiers" //Все ошибки относятся к workarea.cpp
Ну ты безнадёжен...
Можете хотя-бы примерно объяснить, что сделал не так?)
проще замазать чем отодрать... ты вообще понимаешь сам что ты пишешь или просто переписываешь откуда-то?
А это что такое ? class Photoeditor:Fl_Window {};
Я пытаюсь с нуля написать свой проект, до этого я занимался лишь теорией, в основном на C
очевидно человек хотел унаследовать один класс от другого, но как сделать не знал... ну это я так думаю...
Объявление класса в файле main.h . Здесь я указал класс Photoeditor и показал, что он наследуется от класса Fl_Window , который находится в заголовочном файле Fl_Window.H который объявляется в main.cpp
Это определение. причём второе уже.
Так проблема только в заголовочном файле? Почему вы так пишете, будто у меня каша из кода?
Короче, хочешь избавиться от всего этого дерьма быстро - перенеси весь код в один исходный файл, пока тебе множество файлов не нужно. Оформишь там код правильно - хоть что-то поймёшь
У тебя в main.cpp твой Photoeditor имеет одно определение, а в workarea.cpp другое. Перенеси из main.cpp определение в main.h и включай его же тут.
но компилятор то сразу все файлы знает
потому что у тебя каша из кода
Понял, спасибо
определение должно быть одно, короткие методы можно писать там-же, большие лучше выносить в отдельные файлы, но прототипы в определении должны быть
Да, спасибо, теперь понял в чём проблема. Исправляю
Пиши всё в одном исходнике
Инклуды для лохов, один файл для пацанов?))
Можно, но я всё время так делаю. Нужно учится чему-то новому, ведь в будущем я всё равно с этим столкнусь
Ты сначала задание сделай а потом будешь учиться
Это не задание, это просто удобная программа, которая в повседневной жизни будет полезной в основном для себя. В конце концов это практика, а умение разделять код, очень важная её составляющая.
Самая важная составляющая - уметь написать рабочий код.
ну, нужен класс? Делаешь ему одноименный хидер+спп, и всё, никаких проблем. Всё разделено, инклуды работают как положено
Я в целом, умею это делать. Но создавая этот проект я хочу научится его организовывать
Ещё бы он был понятным...
Это следующая составляющая. К обсуждению понятности можно переходить, когда есть что-то работающее
Ну организовывай по современному. Пиши только в хедерарах или вообще используй модули
Не перестраивать же мне проект, когда я его уже напишу
можно сразу писать хорошо, а можно писать как получится и потом рефакторить. Просто разные подходы, но второй выходит быстрее)
Быстрее чтобы создать проект, но мне бы хотелось научится
К тому же, даже в мои масштабах, когда я писал как получится, возникали огромные неприятности
так в итоге получится одинаково. Легко переделать "правильно" то, что уже есть и работает. А с 0 надо опыта много, ты уже можешь архитектором идти устраиваться, если способен на такое
Пойду пока решать нынешнюю проблему. Всё таки проект состоит (или будет состоять) примерно из 3 исходных и столько же заголовочных файлов
я щас работаю над проектом, где ~150 единиц компиляции. А не 3 🌚
Вот и я к этому стремлюсь )
Да я вообще всю жизнь писал только в одном файле и даже с тремя справится не могу
cmake используешь? Там сложного то ничего нет, инклуд ведь буквально вставляет код того, что в том фале находится
Да. Недавно выучил на начальном уровне
так от того и страшно, что сервис не большой, а файликов много. Зато удобно, все там где должно быть
Я знаю. Я просто пока думают, как не ударить в грязь лицом, организовывая это
Перед кем, в грязь то ?
просто подключай в файле то, чтт в нём используется. Компилятор умный, он не будет дублировать (pragma once не забывай)
Да это разве много 150 то
Последнее дело оглядываться, если пытаешься сам что-то делать. Это не стыдно нифига
Обсуждают сегодня