This almost exactly mirrors the existing C examples, but modify both examples slightly to make their output show which language is used.
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
#include <iostream>
|
|
|
|
#include "example_wrap.h"
|
|
|
|
int main(int argc, char **argv) {
|
|
{ // Block containing the Circle and Square objects.
|
|
std::cout << "Creating some objects from C++:\n";
|
|
example::Circle c(10);
|
|
std::cout << " Created circle\n";
|
|
example::Square s(10);
|
|
std::cout << " Created square\n";
|
|
|
|
std::cout << "\nA total of " << example::Shape::nshapes() << " shapes were created\n";
|
|
|
|
c.x(20);
|
|
c.y(30);
|
|
|
|
example::Shape& shape = s;
|
|
shape.x(-10);
|
|
shape.y(5);
|
|
|
|
std::cout << "\nHere is their current positions:\n";
|
|
std::cout << " Circle = (" << c.x() << " " << c.y() << ")\n";
|
|
std::cout << " Square = (" << s.x() << " " << s.y() << ")\n";
|
|
|
|
std::cout << "\nHere are some properties of the shapes:\n";
|
|
example::Shape* shapes[] = {&c, &s};
|
|
for (int i = 0; i < 2; i++) {
|
|
std::cout << " " << (i ? "Square" : "Circle") << "\n";
|
|
std::cout << " area = " << shapes[i]->area() << "\n";
|
|
std::cout << " perimeter = " << shapes[i]->perimeter() << "\n";
|
|
}
|
|
|
|
std::cout << "\nGuess I'll clean up now\n";
|
|
}
|
|
|
|
std::cout << example::Shape::nshapes() << " shapes remain\n";
|
|
std::cout << "Goodbye from C++\n";
|
|
|
|
return 0;
|
|
}
|