Classes
From Sputnik Wiki
(Difference between revisions)
(→Example) |
(→Example) |
||
| Line 72: | Line 72: | ||
// Class variable Y: 21 | // Class variable Y: 21 | ||
// Class variable Z: 31 | // Class variable Z: 31 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ==== Overloading the -- ==== | ||
| + | |||
| + | <syntaxhighlight lang="sputnik"> | ||
| + | Class Vec3 | ||
| + | { | ||
| + | my $x = 0; | ||
| + | my $y = 0; | ||
| + | my $z = 0; | ||
| + | Function Vec3($x1 = 0, $y1 = 0, $z1 = 0) | ||
| + | { | ||
| + | $this->$x = $x1; | ||
| + | $this->$y = $y1; | ||
| + | $this->$z = $z1; | ||
| + | } | ||
| + | Operator "--" | ||
| + | { | ||
| + | $this->$x--; | ||
| + | $this->$y--; | ||
| + | $this->$z--; | ||
| + | } | ||
| + | }; | ||
| + | $cat1 = new Vec3(10, 20, 30); | ||
| + | println("BEFORE --"); | ||
| + | println("Class variable X: " . $cat1->$x); | ||
| + | println("Class variable Y: " . $cat1->$y); | ||
| + | println("Class variable Z: " . $cat1->$z); | ||
| + | $cat1++; | ||
| + | println("AFTER --"); | ||
| + | println("Class variable X: " . $cat1->$x); | ||
| + | println("Class variable Y: " . $cat1->$y); | ||
| + | println("Class variable Z: " . $cat1->$z); | ||
| + | // Prints | ||
| + | // BEFORE -- | ||
| + | // Class variable X: 10 | ||
| + | // Class variable Y: 20 | ||
| + | // Class variable Z: 30 | ||
| + | // AFTER -- | ||
| + | // Class variable X: 9 | ||
| + | // Class variable Y: 19 | ||
| + | // Class variable Z: 29 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 23:15, 19 November 2011
Class <name>
{
statements
...
functions
...
operator overloads
...
casting overloads
...
};
Contents |
Description
Features
Statements
Variables
Functions
Operator Overloads
Cast Overloads
Remarks
Example
Overloading the ++
Class Vec3 { my $x = 0; my $y = 0; my $z = 0; Function Vec3($x1 = 0, $y1 = 0, $z1 = 0) { $this->$x = $x1; $this->$y = $y1; $this->$z = $z1; } Operator "++" { $this->$x++; $this->$y++; $this->$z++; } }; $cat1 = new Vec3(10, 20, 30); println("BEFORE ++"); println("Class variable X: " . $cat1->$x); println("Class variable Y: " . $cat1->$y); println("Class variable Z: " . $cat1->$z); $cat1++; println("AFTER ++"); println("Class variable X: " . $cat1->$x); println("Class variable Y: " . $cat1->$y); println("Class variable Z: " . $cat1->$z); // Prints // BEFORE ++ // Class variable X: 10 // Class variable Y: 20 // Class variable Z: 30 // AFTER ++ // Class variable X: 11 // Class variable Y: 21 // Class variable Z: 31
Overloading the --
Class Vec3 { my $x = 0; my $y = 0; my $z = 0; Function Vec3($x1 = 0, $y1 = 0, $z1 = 0) { $this->$x = $x1; $this->$y = $y1; $this->$z = $z1; } Operator "--" { $this->$x--; $this->$y--; $this->$z--; } }; $cat1 = new Vec3(10, 20, 30); println("BEFORE --"); println("Class variable X: " . $cat1->$x); println("Class variable Y: " . $cat1->$y); println("Class variable Z: " . $cat1->$z); $cat1++; println("AFTER --"); println("Class variable X: " . $cat1->$x); println("Class variable Y: " . $cat1->$y); println("Class variable Z: " . $cat1->$z); // Prints // BEFORE -- // Class variable X: 10 // Class variable Y: 20 // Class variable Z: 30 // AFTER -- // Class variable X: 9 // Class variable Y: 19 // Class variable Z: 29