diff options
Diffstat (limited to 'Examples/d/class/d1/runme.d')
-rw-r--r-- | Examples/d/class/d1/runme.d | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/Examples/d/class/d1/runme.d b/Examples/d/class/d1/runme.d deleted file mode 100644 index b0c4263a2..000000000 --- a/Examples/d/class/d1/runme.d +++ /dev/null @@ -1,58 +0,0 @@ -// This example illustrates how C++ classes can be used from D using SWIG. -// The D class gets mapped onto the C++ class and behaves as if it is a D class. -module runme; - -import tango.io.Stdout; -import example; - -void main() { - // ----- Object creation ----- - - Stdout( "Creating some objects:" ).newline; - - { - scope Square s = new Square(10); - scope Circle c = new Circle(10); - - // ----- Access a static member ----- - Stdout.format( "{} shapes were created.", Shape.nshapes ).newline; - - // ----- Member data access ----- - - // Notice how we can do this using functions specific to - // the 'Circle' class. - c.x = 20; - c.y = 30; - - // Now use the same functions in the base class - Shape shape = s; - shape.x = -10; - shape.y = 5; - - Stdout( "\nHere is their current position:" ).newline; - Stdout.format( " Circle = ( {}, {} )", c.x, c.y ).newline; - Stdout.format( " Square = ( {}, {} )", s.x, s.y ).newline; - - // ----- Call some methods ----- - - Stdout( "\nHere are some properties of the shapes:" ).newline; - Shape[] shapes = [ cast(Shape) c, cast(Shape) s ]; - foreach ( currentShape; shapes ) - { - Stdout.format( " {}", currentShape.classinfo.name ).newline; - Stdout.format( " area = {}", currentShape.area() ).newline; - Stdout.format( " perimeter = {}", currentShape.perimeter() ).newline; - } - - // Notice how the area() and perimeter() functions really - // invoke the appropriate virtual method on each object. - - // ----- Delete everything ----- - Stdout( "\nGuess I'll clean up now:" ).newline; - // Note: when this using scope is exited the D destructors are called which - // in turn call the C++ destructors. - } - - Stdout.format( "{} shapes remain", Shape.nshapes ).newline; - Stdout( "\nGoodbye!" ).newline; -} |