| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <title>Учебный курс по внесению изменений и переходам в файлах исходных кодов на языках C/C++</TITLE> |
| <meta name="DESCRIPTION" content="Short tutorial that demonstrates editing |
| and navigating C and C++ source files in NetBeans IDE"> |
| <meta name="author" content="Susan Morgan"><!--Optional tag--> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| </head> |
| <body> |
| <a name="top"></a> |
| |
| <h1>Внесение изменений и переходы в файлах исходных кодов на C/C++ - учебный курс по среде IDE NetBeans 7.2/7.3</h1> |
| <!-- START INTRO --> |
| <div class="articledate" style="margin-left: 0px;font-style:italic;"> |
| <p><em>Составитель <i>Энн Райс (Ann Rice)</i>, редактор <i>Сьюзан Морган (Susan Morgan)</i> <br> Январь 2013 г.</em> [номер редакции: V7.3-1]</div> |
| |
| <p>В настоящем кратком учебном курсе описываются некоторые возможности навигации по файлам исходных кодов и внесению изменений в них в проекте на языке C или C++ в среде IDE NetBeans 7.2 или 7.3. |
| </p> |
| <!-- END INTRO --> |
| <h3>Содержание</h3> |
| <img alt="Содержимое на этой странице применимо к IDE NetBeans 7.2 и 7.3" class="stamp" src="../../../images_www/articles/72/netbeans-stamp-72-73.png" title="Содержимое этой страницы применимо к IDE NetBeans 7.2 и 7.3" /> |
| |
| <table class="b-none vatop" cellpadding="0" cellspacing="0"> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#requirements" title="Требования">Требования</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#project" title="Создание примера проекта"></a>Создание примера проекта</td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#editing" title="Изменение исходных файлов на языке C и C++">Изменение исходных файлов на языке C и C++</a></td> |
| </tr> |
| <!-- <table cellspacing="0" cellpadding="0"> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#formatting" title="Setting the Formatting Style">Setting |
| the Formatting Style</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#folding" title="Folding Blocks of Code in C and C++ Files"> |
| Folding Blocks of Code in C and C++ Files</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href=#markoccurrences" title="Using Semantic Highlighting">Using |
| Semantic Highlighting</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#completion" title="Using Code Completion">Using Code |
| Completion</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#templates" title="Using Code Templates">Using Code Templates</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#pairs" title="Using Pair Completion">Using Pair |
| Completion</a></td> |
| </tr> |
| </table> |
| --> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#navigating" title="Переход по исходным файлам на C и C++">Переход по исходным файлам на C и C++</a></td> |
| </tr> |
| <!-- <table cellspacing="0" cellpadding"0"> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#classes" title="Using the Classes Window">Using the |
| Classes Window</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#navigator" title="Using the Navigator Window">Using the Navigator |
| Window</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#findusages" title="Finding Class, Method, and Field |
| Usages">Finding Class, Method, and Field Usages</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#callgraph" title="Using the Call Graph">Using the Call |
| Graph</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#classes" title="Using Hyperlinks">Using Hyperlinks</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#include" title="Using the Include Hierarchy">Using the |
| Include Hierarchy</a></td> |
| </tr> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#type" title="Using the Type Hierarchy">Using the |
| Type Hierarchy</a></td> |
| </tr> |
| </table> |
| --> |
| <tr> |
| <td class="hyphen">- </td> |
| <td><a href="#nextsteps" title="Что дальше?">Следующие действия</a></td> |
| </tr> |
| |
| |
| </table> |
| |
| <h2><a NAME="requirements"></a>Требования</h2> |
| <p><b>Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.</b> </p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Программное обеспечение или материал</th> |
| <th class="tblheader" scope="col">Требуемая версия</th> |
| </tr> |
| <tr> |
| <td class="tbltd1">IDE NetBeans</td> |
| <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">, версия 7.3 с подключаемым модулем C/C++ для NetBeans</a></td> |
| </tr> |
| <tr> |
| <td class="tbltd1">Комплект для разработчика на языке Java (JDK)</td> |
| <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">версия 7</a></td> |
| </tr> |
| |
| </tbody> |
| </table> |
| <br> |
| <p>Ознакомьтесь с разделами <a href="../../../community/releases/73/install.html">Указания по установке среды IDE NetBeans 7.3</a> и <a HREF="../../../community/releases/73/cpp-setup-instructions.html">Настройка среды IDE NetBeans для C/C++/Фортрана</a><br> для получения сведений о загрузке и установке требуемого программного обеспечения.</p> |
| |
| <p><b>Примеры проектов</b> |
| </p> |
| <p>Чтобы поэкспериментировать с проектами, выберите в среде IDE команду "Файл" > "Новый проект", а затем откройте категорию "Примеры" и подкатегорию "C/C++". В среде IDE представлено несколько примеров проектов на языке C и C++, которые помогут ознакомиться с функциями среды. |
| </p> |
| <h2><a name="project"></a>Создание примера проекта</h2> |
| <p>Подключаемый модуль NetBeans IDE с C/C++ предоставляет расширенные возможности редактирования для изменения исходного кода. Для наглядного рассмотрения этих функций в этом учебном курсе используется проект <tt>Quote</tt>. Если проект еще не создан, выполните следующие действия:</p> |
| <ol> |
| <li>Выберите команду "Файл" > "Новый проект".</li> |
| <li>Разверните в мастере создания проекта категорию "Примеры" и выберите подкатегорию "C/C++".</li> |
| <li>Выберите проект <tt>Quote</tt>. Нажмите кнопку "Далее", а затем нажмите кнопку "Готово". |
| </li> |
| </ol> |
| <h2><a name="editing"></a>Изменение исходных файлов на языке C и C++</h2> |
| |
| |
| <h3><a name="formatting"></a>Установка стиля форматирования</h3> |
| Окно "Параметры" по умолчанию используется для настройки стиля форматирования проектов на языке C и C++. |
| <ol> |
| <li>Выберите команду "Сервис" > "Параметры".</li> |
| <li>Нажмите элемент "Редактор" на верхней панели окна.</li> |
| <li>Выберите вкладку "Форматирование".</li> |
| |
| <li>Выберите в раскрывающемся списке "Язык" язык C++, поскольку в проекте Quote используется язык C++. |
| </li> |
| <li>Выберите в раскрывающемся списке "Стиль" необходимый стиль.<br> <img alt="Снимок вкладки 'Стили форматирования'" src="../../../images_www/articles/72/cnd/navigating-editing/formatting_style.png"> |
| </li> |
| <li>Измените свойства стиля требуемым образом.</li> |
| </ol> |
| <h3><a name="folding"></a>Свертывание блоков кода в файлах C и C++</h3> |
| <p> |
| Для некоторых типов файлов можно использовать функцию свертывания кода, чтобы свернуть блоки кода для отображения в редакторе исходного кода только первой строки блока. |
| </p> |
| <ol> |
| <li>Откройте в проекте приложения <tt>Quote_1</tt> папку "Source Files" и дважды щелкните файл <tt>cpu.cc</tt>, чтобы открыть его в редакторе исходного кода. |
| </li> |
| <li>Щелкните в левом поле значок свертывания (небольшое поле со знаком "-"), чтобы свернуть код одного из методов.</li> |
| <li>Наведите курсор на символ <tt>{...}</tt> справа от свернутого блока для отображения кода блока. <br> <img alt="Снимок свернутого кода в редакторе исходного кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_folding.png"> |
| </li> |
| </ol> |
| <h3><a name="markoccurrences"></a>Использование семантического выделения</h3> |
| <p>Параметр можно настроить таким образом, чтобы при щелчке по классу, функции, переменной или макросу выделялись все вхождения этого класса, функции, переменной или макроса в текущем файле. |
| </p> |
| <ol> |
| <li>Выберите команду "Сервис" > "Параметры".</li> |
| <li>Нажмите элемент "Редактор" на верхней панели окна.</li> |
| <li>Выберите вкладку "Выделение".</li> |
| <li>Убедитесь, что все флажки установлены.</li> |
| <li>Нажмите кнопку "ОК".</li> |
| <li>Обратите внимание, что в файле <tt>customer.cc</tt> проекта <tt>Quote_1</tt> имена методов выделены жирным.</li> |
| <li>Щелкните вхождение класса <tt>Customer</tt>. |
| </li> |
| <li>Все вхождения класса <tt>Customer</tt> в файле будут выделены желтым цветом. В правом поле также отображаются отметки, указывающие расположение вхождений в файле. Отметки позволяют оценить число вхождений в файле без прокручивания. Чтобы перейти ко вхождению, следует щелкнуть необходимую отметку.<br> <img alt="Снимок выделенного кода в редакторе исходного кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/highlighting1.png"> |
| </li> |
| <li>Для легкого перехода между вхождениями нажимайте клавиши Alt+Down, чтобы перейти к следующему вхождению, и Alt+Up, чтобы перейти к предыдущему вхождению.</li> |
| <li>Откройте файл <tt>customer.h</tt>, расположенный в папке "Headers", и обратите внимание, что имена методов снова выделены жирным.<br> <img alt="Снимок файла с выделенными методами в редакторе исходного кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/highlighting2.png"> |
| </li> |
| </ol> |
| |
| <h3><a name="completion"></a>Работа с автозавершением кода и документированием</h3> |
| <p> |
| Среда IDE имеет функцию динамического автозавершения кода на языке C и C++, благодаря которой при вводе одного или нескольких символов выводится список возможных классов, методов, переменных и т.д., которые можно использовать для завершения выражения.</p> |
| <p>Также в среде IDE выполняется динамический поиск документации классов, функций, методов и пр., а также отображение документации во всплывающем окне.</p> |
| <ol> |
| <li>Откройте файл в проекте <tt>Quote_1</tt> <tt>quote.cc</tt>.</li> |
| |
| <li>Введите в первой пустой строчке файла <tt>quote.cc</tt> заглавную латинскую букву "C" и нажмите сочетание клавиш CTRL+ПРОБЕЛ. Появится окно автозавершения кода с небольшим списком, включающем классы <tt>Cpu</tt> и <tt>Customer</tt>. Также отобразится окно документации с сообщением "Документация не найдена", поскольку исходный код проекта не содержит документации по коду.</li> |
| <li>Разверните список элементов, снова нажав CTRL+ПРОБЕЛ. <br> <img alt="Снимок поля автозавершения кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_completion1.png"> |
| |
| </li> |
| <li>Используйте клавиши со стрелками или кнопки мыши для выделения стандартной функции библиотеки (например, <tt>calloc</tt>) из списка. В окне документации появится страница системной справки для этой функции, если эта страница доступна для среды IDE. <br> <img alt="Снимок документации автозавершения кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code-completion-documentation.png"> |
| </li> |
| <li>Выберите класс <tt>Customer</tt> и нажмите ENTER. |
| </li> |
| <li>Заполните новый экземпляр класса <tt>Customer</tt>, введя текст <tt>andrew;</tt>. Введите в следующей строке латинскую букву <tt>a</tt> и нажмите CTRL+ПРОБЕЛ. Появится окно автозавершения кода со списком возможных элементов с начальной буквой <tt>a</tt>, например аргументы метода, поля класса и глобальные имена, доступные в текущем контексте.<br> <img alt="Снимок поля автозавершения кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_completion2.png"> |
| </li> |
| <li>Дважды щелкните параметр <tt>andrew</tt>, чтобы принять его и ввести после него точку. Нажмите Ctrl-пробел, и будет выведен список общедоступных методов и полей класса <tt>Customer</tt>.<br> <img alt="Снимок поля автозавершения кода" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_completion3.png"> |
| </li> |
| <li>Удалите добавленный код.</li> |
| </ol> |
| |
| <h3><a name="documentation"></a>Добавление документации к исходному коду</h3> |
| <p>Можно добавить в код комментарии для автоматического создания документации к функциям, классам и методам. Среда IDE распознает комментарии с синтаксисом Doxygen и автоматически создает документацию. Также среда IDE может автоматически создавать блок комментариев для документирования функции под комментарием.</p> |
| |
| <ol> |
| <li>Наведите курсор в файле <tt>quote.cc</tt> на строку 75 или на строку, расположенную выше. <br> <tt>int readNumberOf(const char* item, int min, int max) {</tt> |
| </li> |
| <li>Введите косую черту и две звездочки, а затем нажмите ENTER. Редактор вставляет комментарий, отформатированный по синтаксису Doxygen, для класса <tt>readNumberOf</tt>. <br> <img alt="Снимок автоматически созданных комментариев Doxygen" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_comment.png"> |
| </li> |
| <li>Добавьте текст описания в каждую строку аннотации @param и сохраните файл. <br> <img alt="Снимок отредактированных комментариев Doxygen" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_comment_edited.png"> |
| </li> |
| <li>Щелкните класс <tt>readNumberOf</tt> для выделения его желтым и щелкните одну из отметок вхождений справа для перехода к области использования класса. |
| </li> |
| <li>Щелкните класс <tt>readNumberOf</tt> в строке, к которой выполнен переход, и нажмите сочетание клавиш CTRL+SHIFT+ПРОБЕЛ для отображения документации, добавленной для параметров.<br> <img alt="Снимок отображенной документации Doxygen" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_displayed.png"> |
| </li> |
| <li>Щелкните в любом месте файла, чтобы закрыть окно документации, а затем щелкните класс <tt>readNumberOf</tt> повторно.</li> |
| <li>Выберите "Исходный код" > "Показать документацию", чтобы снова открыть окно документации для класса.</li> |
| |
| </ol> |
| <h3><a name="templates"></a>Использование шаблонов кода</h3> |
| <p>В редакторе исходного кода существует набор настраиваемых шаблонов кода со стандартными фрагментами кода на C и C++. Можно создать полный фрагмент кода путем ввода его сокращения и нажатия клавиши Tab. Например, в файле <tt>quote.cc</tt> проекта <tt>Quote</tt>: |
| </p> |
| <ol> |
| <li>Введите <tt>uns</tt> с последующим нажатием клавиши Tab, и <tt>uns</tt> развернется до <tt>unsigned</tt>.</li> |
| <li>Введите <tt>iff</tt> с последующим нажатием клавиши Tab, и <tt>iff</tt> развернется до <tt>if (exp) {}</tt>.</li> |
| <li>Введите <tt>ife</tt> с последующим нажатием клавиши Tab, и <tt>ife</tt> развернется до <tt>if (exp) {} else {}</tt>. |
| </li> |
| <li>Введите <tt>fori</tt> с последующим нажатием клавиши Tab, и <tt>fori</tt> развернется до <tt>for (int i = 0; i < size; i++) { Object elem = array[i];</tt>.</li> |
| |
| </ol> |
| <p class="tips">Чтобы просмотреть все доступные шаблоны кода, изменять их, создавать собственные или выбрать другой ключ для расширения шаблонов кода:</p> |
| <ol> |
| <li> |
| Выберите команду "Сервис" > "Параметры". |
| </li> |
| <li>В диалоговом окне 'Параметры' щелкните 'Редактор' и щелкните вкладку 'Шаблолны кода'. |
| </li> |
| <li>В раскрывающемся списке "Язык" выберите необходимый язык.<br> <img alt="Моментальный снимок диалогового окна 'Параметры'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_templates.png"></li> |
| </ol> |
| |
| <h3><a name="pairs"></a>Подстановка парных символов</h3> |
| <p>При редактировании исходных файлов на языках C и C++ редактор исходного кода выполняет "интеллектуальную" подстановку парных символов, например кавычек, круглых и квадратных скобок. При вводе одного из символов редактор исходного кода автоматически подставляет закрывающий символ. |
| </p> |
| <ol> |
| <li>В проекте <tt>Quote_1</tt> разместите курсор в строке 115 файла <tt>module.cc</tt> после символа <tt>{</tt> и нажмите ENTER для перехода в новую строку. |
| </li> |
| <li>Введите <tt>enum state {</tt> и нажмите ENTER. Закрывающая фигурная скобка и точка с запятой будут добавлены автоматически, а курсор будет размещен в строке между скобками. |
| </li> |
| <li>Введите <tt>invalid=0, success=1</tt> для завершения перечисления. |
| </li> |
| <li>Введите в строке после закрывающей скобки <tt>};</tt> перечисления текст <tt>if (</tt>. Закрывающая круглая скобка будет добавлена автоматически, а курсор будет размещен между скобками.</li> |
| <li>Введите <tt>v==null</tt>. Затем введите <tt> {</tt> и добавьте новую строку после правой круглой скобки. Закрывающая квадратная скобка будет добавлена автоматически. </li> |
| <li>Удалите добавленный код.</li> |
| </ol> |
| <h3><a name="finding"></a>Поиск текста в файлах проекта</h3> |
| <p>Вы можете использовать диалоговое окно 'Поиск текста в файлах проекта' для поиска в проектах экземпляров указанного текста или регулярных выражений.</p> |
| <ol> |
| <li>Откройте диалоговое окно 'Поиск текста в файлах проекта', выполнив одно из следующих действий: |
| <ul> |
| <li>Выберите 'Правка' > 'Найти в проектах'</li> |
| <li>Щелкните правой кнопкой мыши проект в окне "Проекты" и выберите команду "Найти".</li> |
| </ul> |
| </li> |
| <li>В диалоговом окне "Найти в проектах" перейдите на вкладку "Список по умолчанию" или на вкладку "Grep". На вкладке 'Grep' используется служебная программа <tt>grep</tt>, обеспечивающая более быстрый поиск, особенно для удаленных проектов. <br> <img alt="Снимок диалогового окна "Найти в проектах"" src="../../../images_www/articles/72/cnd/navigating-editing/find_in_projects.png"></li> |
| <li>На вкладке 'Grep' введите текст или регулярное выражение для поиска, укажите область поиска и шаблон имени файла и щелкните 'Найти'. |
| </li> |
| <li>На вкладке 'Результаты поиска' перечислены файлы, в которых найдены текст или регулярные выражения. <br> <img alt="Снимок вкладки 'Результаты поиска'" src="../../../images_www/articles/72/cnd/navigating-editing/find_in_projects2.png"></li> |
| </ol> |
| |
| <h2><a name="navigating"></a>Переход по исходным файлам на C и C++</h2> |
| <p>Подключаемый модуль NetBeans IDE с C/C++ предоставляет расширенные возможности навигации для просмотра исходного кода. Для исследования этих функций по-прежнему используется проект <tt>Quote_1</tt>. |
| |
| <h3><a name="classes"></a>Использование окна классов</h3> |
| <p> |
| Окно классов позволяет просматривать все классы проекта, а также члены и поля каждого класса.</p> |
| <ol> |
| <li>Выберите вкладку "Классы" для просмотра окна классов. Если вкладка "Классы" не отображается, выберите 'Окно' > 'Классы'</li> |
| <li>Разверните узел <tt>Quote_1</tt> в окне классов. Выводится список всех классов проекта. |
| </li> |
| <li>Разверните класс <tt>Customer</tt>. <br> <img alt="Снимок вкладки 'Представление класса'" src="../../../images_www/articles/72/cnd/navigating-editing/classes_window.png"> |
| </li> |
| <li>Дважды щелкните переменную <tt>name</tt>, чтобы открыть файл заголовка <tt>customer.h</tt>.</li> |
| </ol> |
| <h3><a name="navigator"></a>Использование окна навигатора</h3> |
| <p>Окно навигатора предоставляет компактное представление выбранного в настоящий момент файла и упрощает процедуру перехода между различными частями файла. Если окно навигатора не отображается, выберите команду "Окно" > "Навигация" > "Навигатор", чтобы открыть его. |
| </p> |
| <ol> |
| <li>Щелкните в любом месте окна редактора файла <tt>quote.cc</tt>.</li> |
| <li>В окне навигатора отобразится компактное представление файла.<br> <img alt="Снимок окна 'Навигатор'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/navigator_window.png"> |
| </li> |
| <li>Для перехода к определенному элементу файла дважды щелкните его в окне навигатора, а курсор в окне редактора переместится к этому элементу. |
| </li> |
| <li>Щелкните правой кнопкой мыши в окне навигатора, чтобы выбрать другой способ сортировки элементов, группировку элементов или их фильтрацию.</li> |
| </ol> |
| <p class="tips">Для получения сведений о назначении значков в окне навигатора воспользуйтесь интерактивной справкой по среде IDE. Для этого выберите команду "Справка" > "Содержание справки" и введите в поле поиска окна справки "значки навигатора". </p> |
| |
| |
| <h3><a name="findusages"></a>Поиск мест использования класса, метода и поля</h3> |
| <p>Окно "Случаи использования" применяется для просмотра класса (структуры), функции, переменной, макроса или файла, которые используются в исходном коде проекта.</p> |
| <ol> |
| <li>Щелкните правой кнопкой мыши в файле <tt>customer.cc</tt> класс <tt>Customer</tt> в строке 43, и выберите команду "Найти случаи использования". |
| </li> |
| <li>Нажмите в диалоговом окне "Найти случаи использования" кнопку "Найти". |
| </li> |
| <li>Появится окно "Случаи использования" со случаями использования класса <tt>Customer</tt> в исходных файлах проекта.<br> <img alt="Снимок окна 'Использования'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/usages_window.png"> |
| </li> |
| </ol> |
| <h3><a name="callgraph"></a>Работа с графиком вызовов</h3> |
| <p>В окне "Граф вызовов" отображаются два представления отношений вызовов между функциями проекта. В древовидном представлении отображаются функции, вызванные из выбранной функции, или функции, вызывающие выбранную функцию. Графическим представлением отношений вызовов служат стрелки между вызываемыми и вызывающими функциями. |
| </p> |
| <ol> |
| <li>В файле <tt>quote.cc</tt> щелкните правой кнопкой мыши в функции <tt>main</tt> и выберите 'Показать график вызовов'.</li> |
| <li>Откроется окно "Граф вызовов" с деревом и графическим представлением всех функций, вызванных из функции <tt>main</tt>.<br> <img alt="Снимок окна 'График вызовов'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/call_graph1.png"> |
| <p class="tips">Если отображаются не все функции, приведенные на рисунке выше, нажмите в окне "Граф вызовов" третью кнопку слева для вывода элементов, вызванных из данной функции.</p> |
| </li> |
| <li>Разверните узел <tt>endl</tt> для отображения функций, вызванных этой функцией. Обратите внимание, что график обновляется для дополнительного вывода функций, вызванных функцией <tt>endl</tt>.</li> |
| <li>Нажмите в окне вторую кнопку слева для перемещения фокуса к функции <tt>endl</tt>, затем нажмите четвертую кнопку, чтобы просмотреть все функции, вызывающих функцию <tt>endl</tt>. <br> <img alt="Снимок окна 'График вызовов'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/call_graph2.png"> |
| </li> |
| <li>Разверните несколько узлов дерева для просмотра большего числа функций.<br> <img alt="Снимок окна 'График вызовов'" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/call_graph3.png"> |
| </li> |
| </ol> |
| |
| <h3><a name="hyperlinks"></a>Работа с гиперссылками</h3> |
| <p>Функция перехода по гиперссылкам позволяет переходить от вызова класса, метода, переменной или константы к их объявлению и от объявления к определению. Кроме того, гиперссылки позволяют переходить от переопределяемого метода к переопределяющему и наоборот. |
| </p> |
| <ol> |
| <li>В файле <tt>cpu.cc</tt> проекта <tt>Quote_1</tt> наведите курсор мыши на строку 37, нажав клавишу CTRL. Функция <tt>ComputeSupportMetric</tt> будет выделена, а в аннотации будут выведены сведения о данной функции.<br> <img alt="Снимок вызова функции с аннотациями" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks1.png"> |
| </li> |
| <li> |
| Щелкните гиперссылку, и в окне редактора будет выполнен переход к определению функции.<br> <img alt="Снимок определения функции" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks2.png"> |
| </li> |
| <li>Наведите курсор на определение, нажав клавишу CTRL, и щелкните ссылку. В редакторе будет выполнен переход к объявлению функции в файле заголовка <tt>cpu.h</tt>.<br> <img alt="Снимок объявления функции" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks3.png"> |
| </li> |
| <li>Нажмите на панели редактора стрелку влево (вторая кнопка слева), и редактор снова перейдет к определению в файле <tt>cpu.cc</tt>. |
| </li> |
| <li>Наведите курсор мыши на зеленый круг в левом поле и просмотрите аннотацию, указывающую, что данный метод переопределяет другой метод.<br> <img alt="Снимок переопределения аннотаций" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/overide_annotation.png"> |
| </li> |
| <li>Щелкните зеленый круг для перехода к переопределенному методу: будет выполнен переход к файлу заголовка <tt>module.h</tt>. В это файле на полях отображается серый круг, указывающий на то, что метод переопределен.</li> |
| <li>Щелкните серый круг, и в окне редактора появится список методов, переопределяющих этот метод.<br> <img alt="Снимок методов переопределения" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/overridden_by_list.png"> |
| </li> |
| <li>Щелкните элемент <tt>Cpu::ComputeSupportMetric</tt> для обратного перехода к объявлению метода в файле заголовка <tt>cpu.h</tt>.</li> |
| </ol> |
| <h3><a name="include"></a>Работа с иерархией Includes</h3> |
| <p>Окно "Иерархия Includes" позволяет просматривать все файлы заголовков и исходные файлы, которые напрямую или косвенно включены в исходный файл, или все исходные файлы и файлы заголовков, которые напрямую или косвенно включают по #include файл заголовка. |
| </p> |
| <ol> |
| <li>Откройте в проекте <tt>Quote_1</tt> в окне редактора файл <tt>module.cc</tt>.</li> |
| <li>Щелкните правой кнопкой мыши строку <tt>#include "module.h"</tt> в файле и выберите команду "Переход" > "Просмотреть иерархию Includes". |
| </li> |
| <li>По умолчанию окно "Иерархия" представляет собой список файлов, напрямую включающих файл заголовка. Нажмите крайнюю правую кнопку в нижней части окна для изменения представления на древовидное. Нажмите вторую кнопку справа, чтобы изменить представление для всех включаемых и включающих файлов. Разверните узлы дерева для просмотра всех исходных файлов, включающих файл заголовка.<br> <img alt="Снимок иерархии Includes" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/includes_hierarchy.png"> |
| </li> |
| </ol> |
| <h3><a name="type"></a>Работа с иерархией типов</h3> |
| <p>Окно "Иерархия типов" позволяет проверять все подтипы и родительские типы класса. |
| </p> |
| <ol> |
| <li>Откройте в проекте <tt>Quote_1</tt> файл <tt>module.h</tt>.</li> |
| <li>Щелкните правой кнопкой мыши объявление класса <tt>Module</tt> и выберите "Переход" > "Просмотреть иерархию типов". |
| </li> |
| <li>Окно иерархии содержит все подтипы класса Module.<br> <img alt="Снимок иерархии типов" class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/type_hierarchy.png"> |
| </li> |
| </ol> |
| <h3><a name="nextsteps">Следующие действия</a></h3> |
| <p>Учебный курс по использованию функций отладки проекта C или C++ в IDE NetBeans см. в разделе <a href="debugging.html">Отладка проектов C/C++</a>. |
| </p> |
| |
| <div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20Editing%20and%20Navigating%20C/C++%20Source%20Files%20-%20NetBeans%20IDE%207.3%20Tutorial">Отправить отзыв по этому учебному курсу</a></div> |
| |
| </body> |
| </html> |