Mercury13, у меня кажется получилось собрать под Линуксом, и Qt под Линуксом заработал. Осталось понять как эти .so прикрутить к проекту. В принципе без разницы, на qmake или CMake.
Евгений Шатунов, имеете ввиду книгу по компиляторам с драконом?
Я думаю, что мне сначала нужно попробовать написать классы всяких стеков, деревьев, очередей, списков и прочего. Я как бы представление имею что это и как примерно сделать, но не писал. Как думаете?
Это чёртов ад с этими сраными библиотеками, системами сборок и прочей хренью. Так все надоело. Потерял 3 дня и ничего не сделал. Лучше бы я сам этот парсер сел писать.
Ну, это то понятно.
Я поместил в каталог проекта каталог с библиотекой. В нём три каталога:
bin с .dll
include с .hpp
lib с чем-то ещё
Мне же ещё нужно хэдеры куда то прописать? И как CMake найдет, где лежит .dll?
Можно ещё вопрос по поводу gnuplot?
Я так понял у него свой язык, и все команды идут через sendLine()?
Т.е. это единственный метод? Просто я не нашёл API на чистом Си (в смысле описания функций).
Вообще-то чистый Си до сих пор остается языком, доминирующим в системном программировании, особенно на Линукс. Причина простая, выше уровень абстракции - больше ресурсов. ООП код жрет гораздо больше структурного. И ООП не нужно пихать всегда и везде.
maaGames, мне на Stack Overflow подсказали, что можно и так делать this->BaseClass::operator=(derref);
Так даже правильнее и очевиднее, что происходит
Просто я думал, что неявное обращение к членам (без this) работает только с данными-членами, но не с функциями-членами. Но, как оказалось, я не правильно думал. Хотя, едва ли я стану писать иначе, потому что по мне это плохой стиль. Это неочевидно. Выглядит как статический метод или просто функция.
Я как раз читаю Си++ Прата. Я не понимаю, почему это работает. Нельзя ведь вызывать метод просто через область видимости (разрешение контекста), если он не статический. Если нужно вызывать собственный метод, то есть указатель this, и следует вызывать метод через него. Проблема в том, что тут нужно вызвать нестатический метод базового класса, а объект указать невозможно, т.к. указателя наподобие this на базовый класс не существует. Вот я и не пойму, что это за диковина такая.
С другой стороны, там написано, что это необходимо делать только если и базовый, и производный класс используют динамическое выделение памяти. Но я догадываюсь, что такое нужно делать просто при явном определении operator=(). Иначе логика теряется. Явно определять operator=() можно и без использования выделения памяти на куче.
НЭТ!
statement - инструкция (дословно как заявление но корректнее будет как инструкция)
operator - оператор (типа for, while, +, -, /, *, =, return и т.д., но for (init;condit;modif) { ... } - это уже statement)
declaration - объявление
definition - определение