docs.roxen.comView this page in a printer friendly mode
DocsPike7.0TutorialObject-Oriented Programming
Copyright  2001, Roxen Internet Software
Suggestions, comments & compliments
manuals@roxen.com
 DEMO  DOCS  PIKE
 COMMUNITY  DOWNLOAD
www.roxen.com



Object Orientation in General
Object Orientation in Pike
Creating and Using Objects
How to Create a Class
Classes as Record Types
Programs are Classes and Vice Versa
Inheritance
Multiple Inheritance
Access control

How to Create a Class

To create a class, you write a class definition, with all the member variables and methods. For the class animal, which we have used above, the class definition may look like this:

class animal
{
  string name;
  float weight;

  void create(string n, float w)
  {
    name = n;
    weight = w;
  }

  void eat(string food)
  {
    write(name + " eats some " + food + ".\n");
    weight += 0.5;
  }
}

Some explanations about this:

  • A member variable, such as name, exists once in each cloned object, not in the class itself.

  • When a method, such as eat, refers to a member variable, such as weight, it will use that variable in the same object that it was called for. For example, when we call my_dog->eat("quiche"), it is the weight in the object my_dog that is increased.

  • The method create is special. This method that handles the arguments that you give when you clone an object. (C++ programmers would call this a "constructor".)

  • You can also have a method called destroy. This method is what C++ programmers would call the "destructor", i. e. a method that is run just before the object disappears. A destructor is sometimes needed for cleanup, but much more seldom in Pike than in C++, since Pike has automatic garbage collection.