<html lang="en">
<head>
<title>Static Definitions - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="C_002b_002b-Misunderstandings.html#C_002b_002b-Misunderstandings" title="C++ Misunderstandings">
<link rel="next" href="Name-lookup.html#Name-lookup" title="Name lookup">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Static-Definitions"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Name-lookup.html#Name-lookup">Name lookup</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="C_002b_002b-Misunderstandings.html#C_002b_002b-Misunderstandings">C++ Misunderstandings</a>
<hr>
</div>

<h4 class="subsection">11.8.1 Declare <em>and</em> Define Static Members</h4>

<p><a name="index-C_002b_002b-static-data_002c-declaring-and-defining-3233"></a><a name="index-static-data-in-C_002b_002b_002c-declaring-and-defining-3234"></a><a name="index-declaring-static-data-in-C_002b_002b-3235"></a><a name="index-defining-static-data-in-C_002b_002b-3236"></a>When a class has static data members, it is not enough to <em>declare</em>
the static member; you must also <em>define</em> it.  For example:

<pre class="smallexample">     class Foo
     {
       ...
       void method();
       static int bar;
     };
</pre>
 <p>This declaration only establishes that the class <code>Foo</code> has an
<code>int</code> named <code>Foo::bar</code>, and a member function named
<code>Foo::method</code>.  But you still need to define <em>both</em>
<code>method</code> and <code>bar</code> elsewhere.  According to the ISO
standard, you must supply an initializer in one (and only one) source
file, such as:

<pre class="smallexample">     int Foo::bar = 0;
</pre>
 <p>Other C++ compilers may not correctly implement the standard behavior. 
As a result, when you switch to <samp><span class="command">g++</span></samp> from one of these compilers,
you may discover that a program that appeared to work correctly in fact
does not conform to the standard: <samp><span class="command">g++</span></samp> reports as undefined
symbols any static data members that lack definitions.

 </body></html>

