blob: d7068bc0e335cd47a4d13e59b46acdc19a141f4e [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Editing and Navigating C/C++ Source Files Tutorial</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>Editing and Navigating C/C++ Source Files - NetBeans IDE 7.2/7.3 Tutorial</h1>
<!-- START INTRO -->
<div class="articledate" style="margin-left: 0px;font-style:italic;">
<p><em>Contributed by <i>Ann
Rice</i> and maintained by <i>Susan Morgan</i><br>
January 2013</em> [Revision number: V7.3-1]</div>
<p>The following short tutorial takes you through some of the features for navigating
and editing the source files in a C or C++ project in NetBeans IDE 7.2 or 7.3.
</p>
<!-- END INTRO -->
<h3>Contents</h3>
<img src="../../../images_www/articles/72/netbeans-stamp-72-73.png" class="stamp" alt="Content on this page applies to NetBeans IDE 7.2 and 7.3" title="Content on this page applies to the NetBeans IDE 7.2 and 7.3" />
<table class="b-none vatop" cellpadding="0" cellspacing="0">
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#requirements" title="Requirements">Requirements</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#project" title="Creating the Sample Project">Creating the
Sample Project</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#editing" title="Editing C and C++ Source Files">Editing C and C++ Source Files</a></td>
</tr>
<!-- <table cellspacing="0" cellpadding="0">
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#formatting" title="Setting the Formatting Style">Setting
the Formatting Style</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</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">-&nbsp;</td>
<td><a href=#markoccurrences" title="Using Semantic Highlighting">Using
Semantic Highlighting</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#completion" title="Using Code Completion">Using Code
Completion</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#templates" title="Using Code Templates">Using Code Templates</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#pairs" title="Using Pair Completion">Using Pair
Completion</a></td>
</tr>
</table>
-->
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#navigating" title="Navigating C and C++ Source Files">Navigating
C and C++ Source Files</a></td>
</tr>
<!-- <table cellspacing="0" cellpadding"0">
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#classes" title="Using the Classes Window">Using the
Classes Window</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#navigator" title="Using the Navigator Window">Using the Navigator
Window</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</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">-&nbsp;</td>
<td><a href="#callgraph" title="Using the Call Graph">Using the Call
Graph</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#classes" title="Using Hyperlinks">Using Hyperlinks</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#include" title="Using the Include Hierarchy">Using the
Include Hierarchy</a></td>
</tr>
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#type" title="Using the Type Hierarchy">Using the
Type Hierarchy</a></td>
</tr>
</table>
-->
<tr>
<td class="hyphen">-&nbsp;</td>
<td><a href="#nextsteps" title="Next Steps">Next Steps</a></td>
</tr>
</table>
<h2><A NAME="requirements"></a>Requirements</h2>
<p><b>To follow this tutorial, you need the following software and resources.</b> </p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software or Resource</th>
<th class="tblheader" scope="col">Version Required</th>
</tr>
<tr>
<td class="tbltd1">NetBeans IDE</td>
<td class="tbltd1"><a
href="https://netbeans.org/downloads/index.html"> version 7.3
with NetBeans C/C++ plugin</a></td>
</tr>
<tr>
<td class="tbltd1">Java Developer Kit (JDK)</td>
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">version 7</a></td>
</tr>
</tbody>
</table>
<br>
<p>See the <a href="../../../community/releases/73/install.html">NetBeans IDE
7.3 Installation
Instructions</a> and <a
HREF="../../../community/releases/73/cpp-setup-instructions.html">
Configuring the NetBeans IDE for C/C++/Fortran</a><br> for
information about downloading and installing the required software.</p>
<p><b>Sample Projects</b>
</p>
<p>Just want to play with some projects? In the IDE, choose
File&nbsp;&gt;&nbsp;New Project, then open the Samples category
and the C/C++ subcategory. The IDE
provides several sample C and C++ projects to help you familiarize
yourself with the IDE.
</p>
<h2><a name="project"></a>Creating the Sample Project</h2>
<p>The NetBeans IDE with the C/C++ plugin provides advanced editing features for modifying your source code. To explore these features, we'll use
the <tt>Quote</tt> project. If you have not already created this
project, do the following:</p>
<ol>
<li>Choose File &gt; New Project.</li>
<li>In the project wizard, expand the Samples category and select the C/C++ subcategory.</li>
<li>Select the <tt>Quote</tt>
project. Click Next, then click Finish.
</li>
</ol>
<h2><a name="editing"></a>Editing C and C++ Source Files</h2>
<h3><a name="formatting"></a>Setting the Formatting Style</h3>
You can use the Options window to configure default formatting style for
your C and C++ projects.
<ol>
<li>Choose Tools &gt; Options.</li>
<li>Click Editor in the top pane of the window.</li>
<li>Click the Formatting tab.</li>
<li>Select the C++ language from the Language drop-down list because the Quote project uses
C++.
</li>
<li>Select the style you want to set from the Style drop-down list.<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/formatting_style.png" alt="Screenshot of the Formatting Styles tab">
</li>
<li>Modify the style properties as desired.</li>
</ol>
<h3><a name="folding"></a>Folding Blocks of Code in C and C++ Files</h3>
<p>
For some types of files, you can use the code folding feature to collapse
blocks of code so that only the first line of the block appears in the Source
Editor.
</p>
<ol>
<li>In the <tt>Quote_1</tt> application project, open the Source Files folder,
then double-click the <tt>cpu.cc</tt> file to open it in the Source Editor.
</li>
<li>Click the collapse icon (small box with minus sign) in the left margin to fold the code of one of the
methods.</li>
<li>Mouse over the <tt>{...}</tt> symbol to the right of the folded block to
display the code in the block.
<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/code_folding.png" alt="Screenshot of folded code in the Source
Editor" class="b-all margin-around">
</li>
</ol>
<h3><a name="markoccurrences"></a>Using Semantic Highlighting</h3>
<p>You can set an option so that when you click on a class, function, variable,
or macro, all occurrences of that class, function, variable, or macro in the
current file are highlighted.
</p>
<ol>
<li>Choose Tools &gt; Options.</li>
<li>Click Editor in the top pane of the window.</li>
<li>Click the Highlighting tab.</li>
<li>Make sure that all of the check boxes contain checkmarks.</li>
<li>Click OK.</li>
<li>In the <tt>customer.cc</tt> file of the <tt>Quote_1</tt> project,
notice that the method names are highlighted in bold.</li>
<li>Click on an occurrence of the <tt>Customer</tt> class.
</li>
<li>All of the occurrences of the <tt>Customer</tt> class in the file are
highlighted with a yellow background. The right margin also shows markings
that indicate points where an occurrence is located in the file. The markings
let you see how many occurrences there are without scrolling through the file.
You can click the markings to jump to the occurrences that they represent.<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/highlighting1.png" alt="Screenshot of highlighted code in the Source
Editor" class="b-all margin-around">
</li>
<li>To easily navigate between the occurrences, press Alt+Down to go to the next occurrence,
and press Alt+Up to go to the previous occurrence.</li>
<li>Open the <tt>customer.h</tt> file, located in the Headers folder, and notice that
class names are again highlighted in bold.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/highlighting2.png" alt="Screenshot of
file with highlighted methods in the Source Editor">
</li>
</ol>
<h3><a name="completion"></a>Using Code Completion and Documentation</h3>
<p>
The IDE has a dynamic C and C++ code completion feature
that enables you to type one or more characters and then see a
list of possible classes, methods, variables, and so on that can be used
to complete the expression.</p>
<p>The IDE also dynamically searches for documentation for the classes, functions,
methods and so on, and displays the documentation in a popup window.</p>
<ol>
<li>Open the <tt>quote.cc</tt> file in the <tt>Quote_1</tt> project.</li>
<li>On the first blank line of the <tt>quote.cc</tt>,
type a capital C and press Ctrl-Space. The code completion box
displays a short list that includes the <tt>Cpu</tt> and
<tt>Customer</tt> classes. A documentation window also opens but displays
"No documentation found" because the project source does not
include documentation for its code.</li>
<li>Expand the list of items by pressing
Ctrl-Space again. <br>
<img class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code_completion1.png" alt="Screenshot of code completion box">
</li>
<li>Use your arrow keys or mouse to highlight a standard library function
such as <tt>calloc</tt> from the list, and the documentation window displays the man page for that function
if the man page is accessible to the IDE.
<br>
<img class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/code-completion-documentation.png" alt="Screenshot of code completion documentation">
</li>
<li>Select the <tt>Customer</tt> class and press Enter.
</li>
<li>Complete the new instance of the <tt>Customer</tt> class by typing "
<tt>andrew;</tt>". On the next line, type the letter <tt>a</tt> and press
Ctrl-Space twice. The code completion box displays a list of choices starting with
the letter <tt>a</tt>, such as method
arguments, class fields, and global names, that are accessible from the
current context.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/code_completion2.png" alt="Screenshot of code completion box">
</li>
<li>Double-click the <tt>andrew</tt> option to accept it and type a period after it.
Press Ctrl-Space and you are provided with a list of the public methods and fields
of the <tt>Customer</tt> class.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/code_completion3.png" alt="Screenshot of code completion box">
</li>
<li>Delete the code you have added.</li>
</ol>
<h3><a name="documentation"></a>Adding Source Code Documentation</h3>
<p>You can add comments to your code to automatically generate documentation
for your functions, classes, and methods. The IDE recognizes comments that use Doxygen
syntax and automatically generates documentation. The IDE can also automatically
generate a comment block to document the function below the comment.</p>
<ol>
<li>In the <tt>quote.cc</tt> file, place your cursor on line 75, or the line above the line <br>
<tt>int readNumberOf(const char* item, int min, int max) {</tt>
</li>
<li>Type a slash and two asterisks and press Enter. The editor inserts a Doxygen-formatted
comment for the <tt>readNumberOf</tt> class.
<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_comment.png" alt="Screenshot of
automatically generated Doxygen comments">
</li>
<li>Add some descriptive text to each of the @param lines and save the file.
<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_comment_edited.png" alt="Screenshot of
edited Doxygen comments">
</li>
<li>Click the <tt>readNumberOf</tt> class to highlight it in yellow, and click one of the
occurrences marks on the right to jump to a location where the class is used.
</li>
<li>Click the <tt>readNumberOf</tt> class in the line you jumped to, and press Ctrl-Shift-Space
to show the documentation that you just added for the parameters.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/doxygen_displayed.png" alt="Screenshot of
displayed Doxygen documentation">
</li>
<li>Click anywhere else in the file to close the documentation window, and click on the
<tt>readNumberOf</tt> class again.</li>
<li>Choose Source &gt; Show Documentation to open the documentation window
for the class again.</li>
</ol>
<h3><a name="templates"></a>Using Code Templates</h3>
<p>The Source Editor has a set of customizable code templates for common snippets
of C and C++ code. You can generate the full code snippet by typing its
abbreviation and pressing the Tab key. For example, in the
<tt>quote.cc</tt> file of the <tt>Quote</tt> project:
</p>
<ol>
<li>Type <tt>uns</tt> followed by a tab and <tt>uns</tt> expands to <tt>unsigned</tt>.</li>
<li>Type <tt>iff</tt> followed by a tab and <tt>iff</tt> expands to <tt>if (exp) {}</tt>.</li>
<li>Type <tt>ife</tt> followed by a tab and <tt>ife</tt> expands to <tt>if (exp) {} else {}</tt>.
</li>
<li>Type <tt>fori</tt> followed by a tab and <tt>fori</tt> expands to <tt>for (int i = 0; i < size; i++) {
Object elem = array[i];</tt>.</li>
</ol>
<p class="tips">To see all the available code templates, modify the code templates, create
your own code templates, or select a different key to expand the code templates:</p>
<ol>
<li>
Choose Tools &gt; Options.
</li>
<li>In the Options dialog box, select Editor, and click the Code Templates tab.
</li>
<li>Select the appropriate language from the Language drop-down list.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/code_templates.png" alt="Screenshot of
Options dialog box"></li>
</ol>
<h3><a name="pairs"></a>Using Pair Completion</h3>
<p>When you edit your C and C++ source files, the Source Editor does "smart"
matching of pair characters such as brackets, parentheses, and quotation marks.
When you type one of these characters, the Source Editor automatically inserts the closing character.
</p>
<ol>
<li>In the <tt>Quote_1</tt> project, place the cursor after the <tt>{</tt>
on line 115 of the
<tt>module.cc</tt> file and press
Return to go open a new line.
</li>
<li>Type <tt>enum state {</tt> and press Return. The closing curly bracket and
semi-colon are added automatically and the cursor is placed on the line
between the brackets.
</li>
<li>Type <tt>invalid=0, success=1</tt> to
complete the enumeration.
</li>
<li>On the line after the closing <tt>};</tt> of the enumeration, type <tt>if
(</tt>. The closing parenthesis is added automatically and the cursor is
placed between the parentheses.</li>
<li>Type <tt>v==null</tt>. Then type <tt> {</tt> and newline after the right
parenthesis. The closing bracket is added automatically. </li>
<li>Delete the code you have added.</li>
</ol>
<h3><a name="finding"></a>Finding Text in Project Files</h3>
<p>You can use the Find In Projects dialog box to search projects for instances of specified text or a regular expression.</p>
<ol>
<li>Open the Find In Projects dialog box by doing one of the following:
<ul>
<li>Choose Edit &gt; Find In Projects.</li>
<li>Right-click a project in the Projects window and choose Find.</li>
</ul>
</li>
<li>In the Find In Projects dialog box, select the Default Search tab or the Grep tab. The Grep tab uses the <tt>grep</tt> utility, which provides a faster search, especially for remote projects.
<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/find_in_projects.png" alt="Screenshot of
Find in Projects dialog box"></li>
<li>In the Grep tab, type the text or regular expression for which you want to search, specify the search scope and file name pattern, and click Find.
</li>
<li>The Search Results tab lists the files in which the text or regular expression is found.
<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/find_in_projects2.png" alt="Screenshot of
Search Results tab"></li>
</ol>
<h2><a name="navigating"></a>Navigating C and C++ Source Files</h2>
<p>The NetBeans IDE with the C/C++ plugin provides advanced navigation features for
viewing your source code. To explore these features, we'll continue
using the <tt>Quote_1</tt> project.
<h3><a name="classes"></a>Using the Classes Window</h3>
<p>
The Classes window lets you see all of the classes in your project, and the
members and fields for each class.</p>
<ol>
<li>Click the Classes tab to display the Classes window.
If the Classes tab is not displayed, choose Window &gt; Classes</li>
<li>Expand the <tt>Quote_1</tt> node in the Classes window. All
classes in the project are listed.
</li>
<li>Expand the <tt>Customer</tt> class.
<br>
<img src="../../../images_www/articles/72/cnd/navigating-editing/classes_window.png" alt="Screenshot of the Class View tab">
</li>
<li>Double-click the
<tt>name</tt> variable to open the
<tt>customer.h</tt> header file.</li>
</ol>
<h3><a name="navigator"></a>Using the Navigator Window</h3>
<p>The Navigator window provides a compact view of the file that is currently
selected, and simplifies navigation between different
parts of the file. If the Navigator window is not displayed, choose
Window &gt; Navigating &gt; Navigator to open it.
</p>
<ol>
<li>Click anywhere in the <tt>quote.cc</tt> file in the Editor window.</li>
<li>A compact view of the file is displayed in the Navigator
window.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/navigator_window.png" alt="Screenshot of the Navigator window">
</li>
<li>To navigate to an element of the file, double-click the element in the Navigator window and the cursor in
the Editor window moves to that element.
</li>
<li>Right-click in the Navigator to choose a different way to sort the elements, or group the items, or filter them.</li>
</ol>
<p class="tips">To find out what the icons in the Navigator represent, open the IDE online help
by choosing Help &gt; Help Contents, and search for "navigator icons" in the help window. </p>
<h3><a name="findusages"></a>Finding Class, Method, and Field
Usages</h3>
<p>You can use the Usages window to show you everywhere a class (structure), function, variable, macro, or
file is used in your project's source code.</p>
<ol>
<li>In the <tt>customer.cc</tt> file, right-click the <tt>Customer</tt>
class on line 43, and choose Find Usages.
</li>
<li>In the Find Usages dialog box, click Find.
</li>
<li>The Usages window opens and displays all of the usages of the
<tt>Customer</tt> class in the source files of the project.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/usages_window.png" alt="Screenshot of the Usages window">
</li>
</ol>
<h3><a name="callgraph"></a>Using the Call Graph</h3>
<p>The Call Graph window displays two views of the calling
relationships between functions in the project. A tree view
shows the functions called from a selected function, or the functions that
call the selected function. A graphical view shows the calling
relationships using arrows between the called and calling functions.
</p>
<ol>
<li>In the <tt>quote.cc</tt> file, right-click on the <tt>main</tt>
function and
choose Show Call Graph.</li>
<li>The Call Graph window opens and displays a tree and graphical view of all
functions called from the <tt>main</tt> function.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/call_graph1.png" alt="Screenshot of the
Call Graph window">
<p class="tips">If you do not see all the functions as shown here, click the third button
on the left side of the Call Graph window to show "who is called from this function."</p>
</li>
<li>Expand the <tt>endl</tt> node to display the functions called
by that function. Notice the graph is updated to show the functions called by <tt>endl</tt> as well.</li>
<li>Click the second button on the left side of the window to focus on
the <tt>endl</tt> function, then click the fourth button to view all the
functions that call the <tt>endl</tt> function.
<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/call_graph2.png" alt="Screenshot of the
Call Graph window">
</li>
<li>Expand some of the nodes in the tree to see more functions.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/call_graph3.png" alt="Screenshot of the
Call Graph window">
</li>
</ol>
<h3><a name="hyperlinks"></a>Using Hyperlinks</h3>
<p>Hyperlink navigation lets you jump from the invocation of a class, method, variable,
or constant to its declaration, and from its declaration to its definition. Hyperlinks also
let you jump from a method that is overridden to the method that overrides it, and vice
versa.
</p>
<ol>
<li>In the <tt>cpu.cc</tt> file of the <tt>Quote_1</tt> project, mouse over line 37 while pressing Ctrl. The
<tt>ComputeSupportMetric</tt>function is highlighted and an annotation displays information about the
function.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks1.png" alt="Screenshot of the invocation of the function with annotation">
</li>
<li>
Click the hyperlink and the
editor jumps to the definition of the function.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks2.png" alt="Screenshot of the definition of the function">
</li>
<li>Mouse over the definition while pressing Ctrl, and click the hyperlink.
The editor jumps to the declaration of the function in the <tt>cpu.h</tt>
header file.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/hyperlinks3.png" alt="Screenshot of the declaration of the function">
</li>
<li>Click the left arrow in the editor toolbar (second button from the left) and the editor jumps back to
the definition in <tt>cpu.cc</tt>.
</li>
<li>Hover the mouse cursor over the green circle in the left margin and see the annotation that
indicates that this method overrides another method.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/overide_annotation.png" alt="Screenshot of override annotation">
</li>
<li>Click the green circle to go to the overridden method and you jump to the <tt>module.h</tt> header file,
which shows a gray circle in the margin to indicate the method is overridden.</li>
<li>Click the gray circle and the editor displays a list of methods that override this method.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/overridden_by_list.png" alt="Screenshot of overriding methods">
</li>
<li>Click the <tt>Cpu::ComputeSupportMetric</tt> item and you jump back to the declaration
of the method in the <tt>cpu.h</tt>
header file.</li>
</ol>
<h3><a name="include"></a>Using the Includes Hierarchy</h3>
<p>The Includes Hierarchy window lets you inspect all header and source files
that are directly or indirectly included in a source file, or all source and
header files that directly or indirectly include a header file.
</p>
<ol>
<li>In the <tt>Quote_1</tt> project, open the <tt>module.cc</tt> file in the
Source Editor.</li>
<li>Right-click on the <tt>#include "module.h"</tt> line in the file and choose
Navigate &gt; View Includes Hierarchy.
</li>
<li>By default, the Hierarchy window displays a plain list of files that directly
include the header file. Click the right-most button at the bottom of the
window to change the display to a tree view. Click the second
button from the right to change the display to all files that
include or are included. Expand the nodes in the tree view
to see all of the source files that include the header file.<br>
<img class="b-all margin-around"
src="../../../images_www/articles/72/cnd/navigating-editing/includes_hierarchy.png"
alt="Screenshot of the Includes hierarchy">
</li>
</ol>
<h3><a name="type"></a>Using the Type Hierarchy</h3>
<p>The Type Hierarchy window lets you inspect all subtypes or supertypes
of a class.
</p>
<ol>
<li>In the <tt>Quote_1</tt> project, open the <tt>module.h</tt>
file.</li>
<li>Right-click on the declaration of the <tt>Module</tt> class and
choose Navigate &gt; View Type Hierarchy.
</li>
<li>The Hierarchy window displays all of the subtypes of the Module class.<br>
<img class="b-all margin-around" src="../../../images_www/articles/72/cnd/navigating-editing/type_hierarchy.png"
alt="Screenshot of the Type hierarchy">
</li>
</ol>
<h3><a name="nextsteps">Next Steps</a></h3>
<p>See <a href="debugging.html">Debugging C/C++
Projects</a> for a tutorial on using some of the features for
debugging a C or C++ project in NetBeans IDE.
</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">Send Feedback on This Tutorial</a></div>
</body>
</html>