| Red Hat Documentation |
|
Declare and define static members When a class has static data members, it is not enough to declare the static member; you must also define it. Use the following example, for instance. class Foo
{
: : :
void method();
static int bar;
};
This declaration only establishes
that the class Foo
has an int
named Foo::bar,
and a member function named Foo::method.
But you still need to define both method
and bar
elsewhere. According to the draft ANSI standard, you must supply an initializer
in one (and only one) source file, such as the following example shows.
int Foo::bar = 0;Other C++ compilers may not correctly implement the standard behavior. As a result, when you switch to g++ from one of these compilers, you may discover that a program that appeared to work correctly in fact does not conform to the standard: g++ reports as undefined symbols any static data members that lack definitions. |
|
© 2001 Red Hat, Inc. All rights reserved. About Red Hat : Legal statement : Privacy statement : Y2K statement : Contact Red Hat |