var example = require("./example"); // ----- Object creation ----- console.log("Creating some objects:"); c = new example.Circle(10); console.log("Created circle " + c); s = new example.Square(10); console.log("Created square " + s); // ----- Access a static member ----- console.log("\nA total of " + example.Shape.nshapes + " shapes were created"); // access static member as properties of the class object // ----- Member data access ----- // Set the location of the object. // Note: methods in the base class Shape are used since // x and y are defined there. c.x = 20; c.y = 30; s.x = -10; s.y = 5; console.log("\nHere is their new position:"); console.log("Circle = (" + c.x + "," + c.y + ")"); console.log("Square = (" + s.x + "," + s.y + ")"); // ----- Call some methods ----- console.log("\nHere are some properties of the shapes:"); console.log("Circle:"); console.log("area = " + c.area() + ""); console.log("perimeter = " + c.perimeter() + ""); console.log("\n"); console.log("Square:"); console.log("area = " + s.area() + ""); console.log("perimeter = " + s.perimeter() + ""); // ----- Delete everything ----- console.log("\nGuess I'll clean up now"); // Note: this invokes the virtual destructor delete c; delete s; console.log(example.Shape.nshapes + " shapes remain"); console.log("Goodbye");