Contribute on Github

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.