Внесение изменений и переходы в файлах исходных кодов на C/C++ - учебный курс по среде IDE NetBeans 6.9
Добавлено Энн Райс (Ann Rice),поддерживается Сьюзан Морган (Susan Morgan)
Сентябрь 2010 г.[Номер редакции: V6.9-2]
В настоящем кратком учебном курсе описываются некоторые возможности перехода по файлам исходных кодов и внесению изменений в них в проекте на языке C или C++ в среде IDE NetBeans 6.9.
Содержание
Требования
Для работы с этим учебным курсом требуется следующее программное обеспечение и материалы.
См. разделы Указания по установке среды IDE NetBeans 6.9 и Настройка среды IDE NetBeans для C/C++/Фортран
для получения информации о загрузке и установке требуемого программного обеспечения.
Примеры проектов
Чтобы поэкспериментировать с проектами, выберите в среде IDE команду "Файл" > "Новый проект", а затем откройте категорию "Примеры" и подкатегорию "C/C++". В среде IDE представлено несколько примеров проектов на языке C и C++, которые помогут ознакомиться с функциями среды.
Создание примера проекта
Среда IDE NetBeans 6.9 с подключаемым модулем C/C++ предоставляет расширенные возможности изменения исходного кода. Для наглядного рассмотрения этих функций в этом учебном курсе используется проект Quote. Если проект еще не создан, выполните следующие действия:
- Выберите "Файл" > "Новый проект".
- Разверните в мастере создания проекта категорию "Примеры" и выберите подкатегорию "C/C++".
- Выберите проект Quote. Нажмите кнопку "Далее", а затем нажмите кнопку "Готово".
Изменение исходных файлов на языке C и C++
Установка стиля форматирования
Окно "Параметры" по умолчанию используется для настройки стиля форматирования проектов на языке C и C++.
- Выберите команду "Средства" > "Параметры".
- Нажмите элемент "Редактор" на верхней панели окна.
- Выберите вкладку "Форматирование".
- Выберите в раскрывающемся списке "Язык" язык C++, поскольку в проекте Quote используется язык C++.
- Выберите в раскрывающемся списке "Стиль" необходимый стиль.
- Измените свойства стиля требуемым образом.
Свертывание блоков кода в файлах C и C++
Для некоторых типов файлов можно использовать функцию свертывания кода, чтобы свернуть блоки кода для отображения в редакторе исходного кода только первой строки блока.
- Откройте в проекте приложения Quote_1 папку "Source Files" и дважды щелкните файл cpu.cc, чтобы открыть его в редакторе исходного кода.
- Щелкните в левом поле значок свертывания (небольшое поле со знаком "-"), чтобы свернуть код одного из методов.
- Наведите курсор на символ {...} справа от свернутого блока для отображения кода блока.
Использование семантического выделения
Параметр можно настроить таким образом, чтобы при щелчке по классу, функции, переменной или макросу выделялись все вхождения этого класса, функции, переменной или макроса в текущем файле.
- Выберите команду "Сервис" > "Параметры".
- Щелкните элемент "C/C++" на верхней панели окна.
- Выберите вкладку "Выделение".
- Убедитесь, что все флажки установлены.
- Нажмите кнопку "ОК".
- Обратите внимание, что в файле customer.cc проекта Quote_1 имена методов выделены жирным.
- Щелкните вхождение класса Customer.
- Все вхождения класса Customer в файле будут выделены желтым цветом. В правом поле также отображаются отметки, указывающие расположение вхождений в файле. Отметки позволяют оценить число вхождений в файле без прокручивания. Чтобы перейти ко вхождению, следует щелкнуть необходимую отметку.
- Для легкого перехода между вхождениями нажимайте клавиши Alt+Down, чтобы перейти к следующему вхождению, и Alt+Up, чтобы перейти к предыдущему вхождению.
- Откройте файл customer.h, расположенный в папке "Headers", и обратите внимание, что имена методов снова выделены жирным.
Работа с автозавершением кода и документированием
Среда IDE имеет функцию динамического автозавершения кода на языке C и C++, благодаря которой при вводе одного или нескольких символов выводится список возможных классов, методов, переменных и т.д., которые можно использовать для завершения выражения.
Также в среде IDE выполняется динамический поиск документации классов, функций, методов и пр., а также отображение документации во всплывающем окне.
- Откройте файл в проекте Quote_1 quote.cc.
- Введите в первой пустой строчке файла quote.cc заглавную латинскую букву "C" и нажмите сочетание клавиш CTRL+ПРОБЕЛ. Появится окно автозавершения кода с небольшим списком, включающем классы Cpu и Customer. Также отобразится окно документации с сообщением "Документация не найдена", поскольку исходный код проекта не содержит документации по коду.
- Разверните список элементов, снова нажав CTRL+ПРОБЕЛ.
- Используйте клавиши со стрелками или кнопки мыши для выделения стандартной функции библиотеки (например, calloc). В окне документации появится страница системной справки для этой функции, если эта страница доступна для среды IDE.
- Выберите класс Customer и нажмите клавишу ВВОД.
- Заполните новый экземпляр класса Customer, введя текст andrew;. Введите в следующей строке латинскую букву a и нажмите CTRL+ПРОБЕЛ. Появится окно автозавершения кода со списком возможных элементов с начальной буквой a, например аргументы метода, поля класса и глобальные имена, доступные в текущем контексте.
- Дважды щелкните параметр andrew, чтобы принять его и ввести после него точку. Автоматически предоставляется список общедоступных методов и полей класса Customer.
- Удалите добавленный код.
Добавление документации к исходному коду
Можно добавить в код комментарии для автоматического создания документации к функциям, классам и методам. Среда IDE распознает комментарии с синтаксисом Doxygen и автоматически создает документацию. Также среда IDE может автоматически создавать блок комментариев для документирования функции под комментарием.
- Наведите курсор в файле quote.cc на строку 74 или на строку, расположенную выше.
int readNumberOf(const char* item, int min, int max) {
- Введите косую черту и две звездочки, а затем нажмите клавишу ВВОД. В редакторе будет вставлен комментарий в формате Doxygen для класса readNumberOf.
- Добавьте текст описания в каждую строку аннотации @param и сохраните файл.
- Пока класс readNumberOf выделен желтым, щелкните одну из отметок вхождений справа для перехода к области использования класса.
- Щелкните класс readNumberOf в строке, к которой выполнен переход, и нажмите сочетание клавиш CTRL+SHIFT+ПРОБЕЛ для отображения документации, добавленной для параметров.
- Щелкните в любом месте файла, чтобы закрыть окно документации, а затем щелкните класс readNumberOf повторно.
- Используйте параметр меню "Исходный код" > "Показать документацию", чтобы снова открыть окно документации для класса.
Использование шаблонов кода
В редакторе исходного кода существует набор настраиваемых шаблонов кода со стандартными фрагментами кода на C и C++. Можно создать полный фрагмент кода путем ввода его сокращения и нажатия клавиши Tab. Например в файле quote.cc проекта Quote:
- Введите uns с последующим нажатием клавиши Tab, и uns развернется до unsigned.
- Введите iff с последующим нажатием клавиши Tab, и iff развернется до if (exp) {}.
- Введите ife с последующим нажатием клавиши Tab, и ife развернется до if (exp) {} else {}.
- Введите fori с последующим нажатием клавиши Tab, и fori развернется до for (int i = 0; i < size; i++) { Object elem = array[i];.
Можно просматривать все доступные шаблоны кода, изменять их и создавать собственные. Также можно выбрать другую клавишу для развертки шаблонов кода. Выберите меню "Сервис" > "Параметры" > "Редактор" > "Шаблоны кода", а затем выберите соответствующий язык.
Подстановка парных символов
При редактировании исходных файлов на языках C и C++ редактор исходного кода выполняет "интеллектуальную" подстановку парных символов, например кавычек, круглых и квадратных скобок. При вводе одного из символов редактор исходного кода автоматически подставляет закрывающий символ.
- В проекте Quote_1 разместите курсор в строке 115 файла module.cc после символа { и нажмите клавишу ВВОД для перехода в новую строку.
- Введите enum state { и нажмите клавишу ВВОД. Закрывающая фигурная скобка и точка с запятой будут добавлены автоматически, а курсор будет размещен в строке между скобками.
- Введите invalid=0, success=1 для завершения перечисления.
- Введите в строке после закрывающей скобки }; перечисления текст if (. Закрывающая круглая скобка будет добавлена автоматически, а курсор будет размещен между скобками.
- Введите v==null. Затем введите { и добавьте новую строку после правой круглой скобки. Закрывающая квадратная скобка будет добавлена автоматически.
- Удалите добавленный код.
Переход по исходным файлам на C и C++
Среда IDE NetBeans IDE 6.9 с подключаемым модулем C/C++ предоставляет новые возможности перехода для просмотра исходного кода. Для исследования этих функций по-прежнему используется проект Quote_1.
Использование окна классов
Окно классов позволяет просматривать все классы проекта, а также члены и поля каждого класса.
- Выберите вкладку "Классы" для просмотра окна классов. Если вкладка "Классы" недоступна, выберите команду "Окно" > "Классы"
- Разверните узел Quote_1 в окне классов. Выводится список всех классов проекта.
- Разверните класс Customer.
- Дважды щелкните переменную name, чтобы открыть файл заголовка customer.h.
Использование окна навигатора
Окно навигатора предоставляет компактное представление выбранного в настоящий момент файла и упрощает процедуру перехода между различными частями файла. Если окно навигатора не отображается, выберите команду "Окно" > "Навигация" > "Навигатор", чтобы открыть его.
- Щелкните в любом месте окна редактора файла quote.cc.
- В окне навигатора отобразится компактное представление файла.
- Для перехода к определенному элементу файла дважды щелкните его в окне навигатора, а курсор в окне редактора переместится к этому элементу.
- Щелкните правой кнопкой мыши в окне навигатора, чтобы выбрать другой способ сортировки элементов, группировку элементов или их фильтрацию.
Для получения сведений о назначении значков в окне навигатора воспользуйтесь интерактивной справкой по среде IDE. Для этого выберите команду "Справка" > "Содержание справки" и введите в поле поиска окна справки "значки навигатора".
Поиск мест использования класса, метода и поля
Окно "Случаи использования" применяется для просмотра класса (структуры), функции, переменной, макроса или файла, которые используются в исходном коде проекта.
- Щелкните правой кнопкой мыши в файле customer.cc класс Customer в строке 44, и выберите команду "Найти случаи использования".
- Нажмите в диалоговом окне "Найти случаи использования" кнопку "Найти".
- Появится окно "Случаи использования" со случаями использования класса Customer в исходных файлах проекта.
Работа с графиком вызовов
В окне "Граф вызовов" отображаются два представления отношений вызовов между функциями проекта. В древовидном представлении отображаются функции, вызванные из выбранной функции, или функции, вызывающие выбранную функцию. Графическим представлением отношений вызовов служат стрелки между вызываемыми и вызывающими функциями.
- Щелкните правой кнопкой мыши функцию main в файле quote.cc и выберите команду "Показать график вызовов".
- Откроется окно "Граф вызовов" с деревом и графическим представлением всех функций, вызванных из функции main.
Если отображаются не все функции, приведенные на рисунке выше, нажмите в окне "Граф вызовов" третью кнопку слева для вывода элементов, вызванных из данной функции.
- Разверните узел endl для отображения функций, вызванных этой функцией. Обратите внимание, что график обновляется для дополнительного вывода функций, вызванных функцией endl.
- Нажмите в окне вторую кнопку слева для перемещения фокуса к функции endl, затем нажмите четвертую кнопку, чтобы просмотреть все изменения функций, вызывающих функцию endl.
- Разверните несколько узлов дерева для просмотра большего числа функций.
Работа с гиперссылками
Функция перехода по гиперссылкам позволяет переходить от вызова класса, метода, переменной или константы к их объявлению и от объявления к определению. Кроме того, гиперссылки позволяют переходить от переопределяемого метода к переопределяющему и наоборот.
- В файле cpu.cc проекта Quote_1 наведите курсор мыши на строку 36, нажав клавишу CTRL. Функция ComputeSupportMetric будет выделена, а в аннотации будут выведены сведения о данной функции.
-
Щелкните гиперссылку, и в окне редактора будет выполнен переход к определению функции.
- Наведите курсор на определение, нажав клавишу CTRL, и щелкните ссылку. В редакторе будет выполнен переход к объявлению функции в файле заголовка cpu.h.
- Нажмите на панели редактора стрелку влево (выделенную на снимке), и редактор снова перейдет к определению в файле cpu.cc.
- Наведите курсор мыши на зеленый круг в левом поле и просмотрите аннотацию, указывающую, что данный метод переопределяет другой метод.
- Щелкните зеленый круг для перехода к переопределенному методу: будет выполнен переход к файлу заголовка module.h. В это файле на полях отображается серый круг, указывающий на то, что метод переопределен.
- Щелкните серый круг, и в окне редактора появится список методов, переопределяющих этот метод.
- Щелкните элемент Cpu::ComputeSupportMetric для обратного перехода к объявлению метода в файле заголовка cpu.h.
Работа с иерархией include
Окно "Иерархия include" позволяет просматривать все файлы заголовков и исходные файлы, которые напрямую или косвенно включены в исходный файл, или все исходные файлы и файлы заголовков, которые напрямую или косвенно включают по #include файл заголовка.
- Откройте в проекте Quote_1 в окне редактора файл module.cc.
- Щелкните правой кнопкой мыши строку #include "module.h" в файле и выберите команду "Переход" > "Просмотреть иерархию include".
- По умолчанию окно "Иерархия" представляет собой список файлов, напрямую включающих файл заголовка. Нажмите крайнюю правую кнопку в нижней части окна для изменения представления на древовидное. Нажмите вторую кнопку справа, чтобы изменить представление для всех включаемых и включающих файлов. Разверните узлы дерева для просмотра всех исходных файлов, включающих файл заголовка.
Работа с иерархией типов
Окно "Иерархия типов" позволяет проверять все подтипы и родительские типы класса.
- Откройте в проекте Quote_1 файл module.h.
- Щелкните правой кнопкой мыши объявление класса Module и выберите "Переход" > "Просмотреть иерархию типов".
- Окно иерархии содержит все подтипы класса Module.
В разделе Отладка проектов на языках C/C++ можно ознакомиться с учебным курсом по работе с некоторыми функциями отладки проекта на языке C или C++ в среде IDE NetBeans.