When a static member variable is declared private in a class, how can it be defined?
Suppose i have the following class declaration
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";
      }
};
Then the following statement to define a will result in compilation error.
int static_demo::a;
So is it possible to have a static data member in the private section of class?
Adding full code as per 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;
}
The compilation error is:
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
 
     
     
     
    