|
Программирование >> Аргументация конструирования
Мсшмешни/щшйе свою nftozfiauuof Я считаю, что можно избежать излишних ошибок, если комментировать программу в процессе ее написания, вместо того чтобы ждать, когда программа заработает, и только потом возвращаться и добавлять комментарии к тексту. Понятно, что никому не хочется тратить время на написание объемистых заголовков и пояснений к функциям, но я думаю, вы всегда найдете пару минут, чтобы добавить краткий комментарий к программе. Когда вы вернетесь к коду, написанному недели две назад, короткие и содержательные комментарии значительно облегчат вживание в программу. Кроме того, последовательно используемые отступы и соглашения об именах сделают код гораздо доступнее для чтения и понимания. Конечно, очень приятно, когда код легко читать по завершении написания программы, но просто необходимо, чтобы код хорошо воспринимался и при написании - именно тогда, когда вам действительно нужна помощь. Хойил oquH /газ €шиини nfioifuuuuf пошагово Вам, как программисту, очень важно понимать, как работает ваша программа. Ничто не может дать облегчить понимание, чем пошаговое выполнение программы с помощью хорошего отладчика (обычно для этого вполне подходят отладчики, включенные в среды разработки компиляторов). Когда некоторая функция готова и может быть добавлена к программе, ее следует тщательно проверить хотя бы один раз, проходя все возможные варианты ветвления потока управления. Гораздо легче отлавливать ошибки в отдельной функции, чем в комплексе с другими функциями программы. UsSezaSMenefiezfUfSKU опфсиЯо/и Настоятельно советую избегать перегрузки операторов, за исключением операторов ввода-вывода operator () и operator>> () и оператора присвоения operator=(), пока вы как следует не освоитесь в С+ + . Хотя хороший набор перегруженных операторов и может значительно повысить полезность класса и читаемость кода, перегрузка почти никогда не бывает крайне необходимой и может значительно усложнить жизнь начинающего программиста. После того как вы интенсивно поработаете с C++ по меньшей мере несколько месяцев, можете начинать перегружать операторы как вам заблагорассудится. TaSoi с кучей Основное правило, касающееся кучи, заключается в том, что выделение и освобождение памяти из кучи должно происходить на одном уровне. Если функция-член MyClass: : create () выделяет блок памяти и возвращает его вызывавшему коду, то должна существовать и функция MyClass: ; release (), которая освобождает блок памяти, возвращая его в кучу. MyClass : :createO не должна требовать от вызывающей функции самостоятельного освобождения памяти. Это, конечно, не помогает избежать всех проблем (например, вызывающая функция может просто забыть вызвать release ()), однако все же снижает вероятность их возникновения. исшшздшйе иасмочи/Яельные Механизм исключение де и в C + + специально для удобства и эффективности обработки ошибок. Теперь, когда эта возможность стандартизована, вы можете спокойно использовать ее. Шегашпе и1штеай£енмого яаследо€анил Множественное наследование, как и перегрузка операторов, на порядок усложняют программу, что совсем не нужно начинающему программисту. К счастью, большинство отношений реального мира могут быть выражены с помощью одиночного наследования (некоторые утверждают, что множественное наследование вообще не нужно, но я не из таких). В любом случае вы можете спокойно использовать классы с множественным наследованием из коммерческих библиотек, например классы Microsoft MFC. Лишь убедившись в том, что вы твердо понимаете концепции C + + , можно начинать экспериментировать с множественным наследованием. Вы будете уже достаточно подготовлены к неожиданным ситуациям, которые могут возникнуть при использовании этого механизма. Приложение А Словарь терминов Абстрактный Abstract class класс this this Указатель на текущий обьект. this-это скрытый первый аргумент всех нестатических функций-членов, Всегда имеет тип указатель на текущий класс . v tabie v table Таблица, которая содержит адреса виртуальных функций класса, Каждь1й класс, который имеет одну или больще виртуальных функций, обязательно содержит такую таблицу. Класс, который содержит одну или несколько чисто виртуальных функций. Создание объекта такого класса невозможно. Абстракция Abstraction Концепция упрощения реального мира, который разбивается на основные элементы. Абстракция позволяет классам отображать реальный мир. Без абстракции классы представляли бы реальность а ее безнадежно запутанном виде. Класс, из которого порождаются другие классы. Функция-член, которая вызывается полиморфно. См. полиморфизм. Обычная функция, тело которой находится, как правило, в месте ее объявления. Все последующие обращения к функции приводят к ее вызову из одного места в памяти. См. также встраиваемаяфункция. Функция, подставляемая в точке вызова; очень похожа на макроопределение. Последовательность подвыражений и операторов. В языках С и выражение всегда имеет тип и значение. объявленная вне каких-либо функций и благодаря этому доступная для всех функций. Когирование объекта, состоящее в реплицировании содержимого объекта и ресурсов, которыми владеет объект, включая объекты, на которые указывают данные-члены копируемого объекта. или класс, которые не являются членом данного класса, однако имеют доступ к защищенным членам класса. Член класса, доступный только для других членов того же класса. Член класса, доступный только для членов этого класса и его подклассов. Защищенные члены класса не являются общедоступными. Объединение похожих объектов. Например, теплокровные, живородящие, вскормленные молоком матери существа, объединяются в один класс - млекопитающие. Конструктор Constructor Специальная функция-член, которая автоматически вызывает- ся в момент создания объекта. Базовый класс Base class Виртуальная Virtual member функция-член function Внешняя (outline) Outline function функция Встраиваемая Inline function (inline) функция Выражение Expression Глобальная пере- Global variable менная Глубокое копиро- Deep copy вание Друг Friend Закрытый Private Защищенный Protected Классификация Classification
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |