Classes
From Sputnik Wiki
(Difference between revisions)
(→Example) |
(→Example) |
||
Line 32: | Line 32: | ||
− | ==== Overloading | + | ==== Overloading = ==== |
+ | |||
+ | This cannot be overloaded! | ||
+ | |||
+ | ==== Overloading += ==== | ||
+ | |||
+ | ==== Overloading -= ==== | ||
+ | |||
+ | ==== Overloading *= ==== | ||
+ | |||
+ | ==== Overloading **= ==== | ||
+ | |||
+ | ==== Overloading /= ==== | ||
+ | |||
+ | ==== Overloading %= ==== | ||
+ | |||
+ | ==== Overloading .= ==== | ||
+ | |||
+ | ==== Overloading ..= ==== | ||
+ | |||
+ | ==== Overloading ^= ==== | ||
+ | |||
+ | ==== Overloading &= ==== | ||
+ | |||
+ | ==== Overloading |= ==== | ||
+ | |||
+ | ==== Overloading >>= ==== | ||
+ | |||
+ | ==== Overloading <<= ==== | ||
+ | |||
+ | ==== Overloading | ==== | ||
+ | |||
+ | ==== Overloading ^ ==== | ||
+ | |||
+ | ==== Overloading & ==== | ||
+ | |||
+ | ==== Overloading + ==== | ||
+ | |||
+ | ==== Overloading - ==== | ||
+ | |||
+ | ==== Overloading * ==== | ||
+ | |||
+ | ==== Overloading ** ==== | ||
+ | |||
+ | ==== Overloading / ==== | ||
+ | |||
+ | ==== Overloading % ==== | ||
+ | |||
+ | ==== Overloading . ==== | ||
+ | |||
+ | ==== Overloading << ==== | ||
+ | |||
+ | ==== Overloading >> ==== | ||
+ | |||
+ | ==== Overloading ++ ==== | ||
<syntaxhighlight lang="sputnik"> | <syntaxhighlight lang="sputnik"> | ||
Line 74: | Line 128: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ==== Overloading | + | ==== Overloading -- ==== |
<syntaxhighlight lang="sputnik"> | <syntaxhighlight lang="sputnik"> | ||
Line 115: | Line 169: | ||
// Class variable Z: 29 | // Class variable Z: 29 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | ==== Overloading == ==== | ||
+ | |||
+ | ==== Overloading != ==== | ||
+ | |||
+ | ==== Overloading < ==== | ||
+ | |||
+ | ==== Overloading <= ==== | ||
+ | |||
+ | ==== Overloading > ==== | ||
+ | |||
+ | ==== Overloading >= ==== | ||
+ | |||
+ | ==== Overloading <> ==== | ||
+ | |||
+ | ==== Overloading eq ==== | ||
+ | |||
+ | ==== Overloading eqi ==== | ||
+ | |||
+ | ==== Overloading neq ==== | ||
+ | |||
+ | ==== Overloading neqi ==== | ||
+ | |||
+ | ==== Overloading || ==== | ||
+ | |||
+ | ==== Overloading && ==== |
Revision as of 23:19, 19 November 2011
Class <name> { statements ... functions ... operator overloads ... casting overloads ... };
Description
Features
Statements
Variables
Functions
Operator Overloads
Cast Overloads
Remarks
Example
Overloading =
This cannot be overloaded!
Overloading +=
Overloading -=
Overloading *=
Overloading **=
Overloading /=
Overloading %=
Overloading .=
Overloading ..=
Overloading ^=
Overloading &=
Overloading |=
Overloading >>=
Overloading <<=
Overloading |
Overloading ^
Overloading &
Overloading +
Overloading -
Overloading *
Overloading **
Overloading /
Overloading %
Overloading .
Overloading <<
Overloading >>
Overloading ++
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 --
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