docs.roxen.comView this page in a printer friendly mode
DocsPike7.0TutorialObject-Oriented Programming
Copyright  2012, Roxen Internet Software
Suggestions, comments & compliments

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
Multiple Inheritance
Access control

Creating and Using Objects

Assuming that we have the class animal, we can define some variables that can be used to store animals. Remember that the class is also a data type. We can also create some animals to put in those variables. To create an animal, we use the syntax classname(), i. e. the name of the class followed by a pair of parentheses.

animal some_animal;
some_animal = animal();
animal my_dog = animal();

To access a member variable in an object, we use the syntax object-expression->variable-name, i. e. the object followed by the operator -> followed by the name of the variable.

my_dog->name = "Fido";
my_dog->weight = 10.0;
some_animal->name = "Glorbie";
write("My dog is called " + my_dog->name + ".\n");
write("Its weight is " + my_dog->weight + ".\n");
write("That animal is called " + some_animal->name + ".\n");

Most objects need some initial values for its member variables. For example, every animal needs a name and a weight. One way to handle this is to set those variables separately, as we have done above. A better way is to design the class in a way that lets it set the variables immediately when an object is cloned from the class. You can then give the values when cloning:

animal piglet = animal("Piglet", 6.3);

We can call a method in an object, with a similar "->" syntax:

my_dog->eat("quiche"); // Real dogs eat quiche.
write("Its weight is now " + my_dog->weight + ".\n");