[LC++]enum, #define, const, static const, or member const???
Carlo Wood
carlo at alinoe.com
Fri Apr 5 23:02:05 UTC 2002
On Fri, Apr 05, 2002 at 11:53:36AM +0100, Vincent Penquerc'h wrote:
> Making something private implies it is part of a class, so it is
> not in the global namespace anyway.
That is not correct. 'private' controls the accessibility: whether
or not you are allowed to access in (by de compiler). It has no
effect whatsoever on the linker-level.
The declarations
class A {
private:
static int x;
};
and
class A {
public:
static int x;
};
both need a definition
int A::x;
and 'A::x' is being exported (or in "global namespace" as you call it).
'x' is not global namespace of course, but that has nothing to do
with it being private or not.
> static (at global scope) means that the particular identifier
> won't be exported, so won't pollute the global namespace. Note
> that the static keyword in other places does not mean that.
Yup,
static int x;
is not exported.
--
Carlo Wood <carlo at alinoe.com>
More information about the tuxCPProgramming
mailing list