swig/Examples/c/class/runme.cxx
Vadim Zeitlin 7cbbfab198 Show using C++ wrapper API for the "class" example
This almost exactly mirrors the existing C examples, but modify both
examples slightly to make their output show which language is used.
2021-11-19 02:04:41 +01:00

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;
}