Say I have 

```
class A {
public:
  A();
  A(int);
  static const int foo;
  int bar;
}

```

how do I go about constructing the class if I want the static member to be initialised in the constructor? This:

```
A::A()
{
  foo = 123; 
  bar = 42;
}
A::A(int b)
{
  foo = 123;
  bar = b;
}

```

seems to work, but if the static member `foo` is shared among all the instances of the class, how is it that I can initialise it twice? It just seems like I'm doing something wrong.