//: C10:ScopeResolution.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt

namespace X
{

class Y
{

static int i;
public:
void f();

};

class Z;
void func();

}

int X::Y::i = 9;

/* Nell'istruzione sopra, viene usato l'operatore di risoluzione dell'ambito (::) per accedere alla variabile "i" tramite la classe "Y" e il namespace "X". La variabile "i" diventa privata nel momento in cui viene inizializzata. */


class X::Z
{

int u, v, w;

public:

Z(int i);
int g();

};

X::Z::Z(int i) { u = v = w = i; }

int X::Z::g() { return u = v = w = 0; }

void X::func()
{

X::Z a(1);
a.g();

}

int main(){} ///:~