Конструирование программ Алгоритмы ( продолжение ) + реализация на С /C++: Работа с дробями Реализация класса строка Шаблоны и шаблонные функции Функции - друзья. Уровни доступа : private, public, protected.
С и С ++ отличия Типобезопасность : Для С : #define MAX(a,b) ((a) > (b) ? (a) : (b)) Для C++: template T MAX(T a, T b){ return a > b ? a : b; }; В C нет перегрузки функций : int abs(int a); double abs(double a); - функции не могут отличаться только типами аргументов. Указатели и ссылки
Контроль за типами На C: char *str = TEST; printf(%d, str); // Ошибка времени выполнения На C++: char *str = TEST; cout
Рациональные числа Задача : Определить класс дробей – рациональных чисел, являющихся отношением двух целых чисел. Реализовать перегруженные операции сложения, вычитания, умножения и деления дробей. После выполнения метода дробь должна приводиться к несократимому виду.
Вспомогательные определения Значение переменной : #define show(x) #x
Вывод в поток ( перегрузка
Автоматическое форматирование исходного текста программы - форматирование JavaScript Преимущества : весь код в едином стиле, программисты не делают commit ов с исправлениями стиля. Недостатки : во многих случаях код нагляднее, если его отформатировать вручную, не применяя общих правил стиля.