Ad

Sunday, August 05, 2007

Static Member Functions of Class

Much like the Static Members, there also exist static member functions. Just as static members, static functions can also be accessed independently of any specific object and thus its primary use is to pre-initialize static members before creation of any object.

The following program illustrates how static member functions are declared and used:


  // Static Member Functions
  #include <iostream.h>

  class myclass
  {
    // declare a
    static int a;

  public:
    // static function
    static void init(int x){a=x;}

    int get(){return a;}
  };

  // define a
  int myclass::a;

  void main()
  {
    // static functions may
    // be called independently
    // using the class name
    myclass::init(100);

    myclass obj;

    cout<<obj.get();
  }

In the above example the static members function (init() ) is used to initialize the static member variable ‘a’ before object creation.

A few points to remember:

  • Static member functions can only access other static member of the class or global data.

  • Static member functions can’t have a non-static overloaded version.

  • They don’t have a ‘this’ pointer, this is because static functions can be called irrespective of specific object (using the class name and the scope resolution operator ‘::’).

With these restrictions they have very limited applications, one of them as we discussed is to initialize other static members before object creation.

Related Articles:

4 comments:

  1. Thanks!!!
    This Article helped me a lot

    ReplyDelete
  2. Thanks for appreciating!

    Arvind

    ReplyDelete
  3. too good document

    ReplyDelete

You are free to comment anything, although you can comment as 'Anonymous' it is strongly recommended that you supply your name. Thank You.

Please don't use abusive language.