понедельник, 12 декабря 2011 г.
Скомпилировать программу С++ под линукс G++ компилятором
Как компилировать под линукс?
Как скомпилировать программу под линукс?
Как компилировать в линуксе?
Ответ далее.
воскресенье, 11 декабря 2011 г.
Перехват сообщений SIGSEGV (Segmentation Fault) и SIGFPE (Floating point exception)
Разрабатывал на днях класс древовидного списка CTree, как раз создавал конструктор копирования.
Случайно забыл обнулить указатель в конструкторе копирования, что привело в дальнейшем к не всегда выпадающей ошибке доступа к памяти.
Разработка велась в Qt Creator. И ошибка доступа памяти приходила сообщением от ОС в виде сигнала SIGSEGV.
Случайно забыл обнулить указатель в конструкторе копирования, что привело в дальнейшем к не всегда выпадающей ошибке доступа к памяти.
Разработка велась в Qt Creator. И ошибка доступа памяти приходила сообщением от ОС в виде сигнала SIGSEGV.
суббота, 10 декабря 2011 г.
Передача переменных по значению в функцию
Возможно, вы задавались следующими вопросами:
Порядок передачи переменной в функцию?
Как передаётся переменная в функцию?
Создаётся ли временная переменная, при вызове функции?
Данный пример демонстрирует ответ на ваши вопросы.
Порядок передачи переменной в функцию?
Как передаётся переменная в функцию?
Создаётся ли временная переменная, при вызове функции?
Данный пример демонстрирует ответ на ваши вопросы.
Порядок выполнения конструктора и деструктора при наследовании
Рассмотрим порядок выполнения конструкторов/деструкторов, когда один класс наследуется другим. В таком случае конструкторы выполняются по порядку, начиная с самого базового класса. А когда происходит удаление объекта, то деструкторы выполняются начиная с вершины наследования (т.е. с самого последнего потомка)
Порядок выполнения конструктора и деструктора при наследовании |
Порядок выполнения конструктора и деструктора
Рассмотрим порядок выполнения конструктора и деструктора при создании простого объекта.
четверг, 8 декабря 2011 г.
Почему не приходит сигнал об ошибке при delete невалидного указателя?
При освобождении одного и того же указателя дважды мы можем получить ошибку доступа к памяти (SIGSEGV), а можем и не получить её. Как я выяснил, это в основном зависит от везения.
понедельник, 5 декабря 2011 г.
Перегрузка операторов
Складываю сюда примеры перегрузок операторов, в качестве памятки как это работает. Часть примеров реализована для Qt.
Полезные ссылки
1. http://www.parashift.com/c++-faq-lite/templates.html
Секреты шаблонов С++. Ответы на важные аспекты применения шаблонов в С++ с примерами. Для себя узнал много нового и интересного.
2. http://maddog.sitengine.ru/smart-question-ru.html (оригинал на английском здесь)
Как правильно задавать вопросы на IT форумах, как показать, что вы адекватный человек.
В статье есть параграф "Вопросы, которые не стоит задавать", где описано, что думает хакер, читая тот или иной вопрос.
Секреты шаблонов С++. Ответы на важные аспекты применения шаблонов в С++ с примерами. Для себя узнал много нового и интересного.
2. http://maddog.sitengine.ru/smart-question-ru.html (оригинал на английском здесь)
Как правильно задавать вопросы на IT форумах, как показать, что вы адекватный человек.
В статье есть параграф "Вопросы, которые не стоит задавать", где описано, что думает хакер, читая тот или иной вопрос.
воскресенье, 4 декабря 2011 г.
Шаблоны С++
Появилась желание написать шаблон класса, но когда я описал класс в файле .h, а реализовал методу в - .cpp, моя программа отказалась компилироваться. В поисках истины я решил скинуть всё в один файл main.cpp: и класс и его реализацию. И на моё удивление программа успешно откомпилировалась! С этого момента я начал поиски ответа на этот вопрос...
DeadClass
Пришла идея написать DeadClass. Так как следующий вариант отказался компилироваться
class DeadClass { public: DeadClass a; DeadClass() {} }; int main() { DeadClass a; return 0; }то пришлось остановиться на таком варианте
Таблица приоритетов операторов в С++
Наивысший приоритет () [] -> :: . ! ~ ++ -- - * & sizeof new delete typeid (операторы приведения типа) .* ->* * / % + - << >> < <= > >= == != & ^ | && || ?: = += -= *= /= %= >>= <<= &= ^= |= , Низший приоритет
суббота, 3 декабря 2011 г.
пятница, 2 декабря 2011 г.
Заметки о С++
[статья в разработке]
Арифметические операторы
Арифметические операторы
высший, низший приоритеты ++ -- - * / % + - ------ - ------- ---- 1 2 3 4 | V Унарный минус
Подписаться на:
Сообщения (Atom)