variable membre statique lorsqu'il est déclaré privé

Lorsqu'une variable membre statique est déclaré en privé dans une classe, comment peut-il être défini?

Supposons que j'ai la suite de la déclaration de classe

class static_demo
{
   private:
      static int a;

   public:
      static int b;

      void set(int x, int y)
      {
         a = x;
         b = y;
      }

      void show()
      {
         cout << "a = " << a << "\n";
         cout << "b = " << b << "\n";
      }
};

Alors l'instruction suivante pour définir a entraînera une erreur de compilation.

int static_demo::a;

Ainsi est-il possible d'avoir une donnée membre statique dans la section privée de la classe?

L'ajout de code complet comme par Greg,

#include <iostream>

using namespace std;

class static_demo
{
   private:
      static int a;

   public:
      static int b;

      void set(int x, int y)
      {
         a = x;
         b = y;
      }
};

int static_demo::a;
int static_demo::b;

int main()
{
   static_demo::b = 10;
   static_demo::a = 20;

   return 0;
}

L'erreur de compilation est:

static_member_variable.cpp: In function `int main()':
static_member_variable.cpp:20: error: `int static_demo::a' is private
static_member_variable.cpp:26: error: within this context

source d'informationauteur nitin_cherian