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.
This commit is contained in:
parent
55d7db6b27
commit
7cbbfab198
3 changed files with 50 additions and 3 deletions
|
|
@ -5,10 +5,16 @@ CXXSRCS = example.cxx
|
|||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
|
||||
check: build
|
||||
check_c: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' RUNME_EXT=c c_run
|
||||
|
||||
check_cxx: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' RUNME_EXT=cxx c_run
|
||||
|
||||
check: check_c check_cxx
|
||||
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#include "example_wrap.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("Creating some objects:\n");
|
||||
printf("Creating some objects from C:\n");
|
||||
Circle* c = Circle_new(10);
|
||||
printf(" Created circle\n");
|
||||
Square* s = Square_new(10);
|
||||
|
|
@ -37,7 +37,7 @@ int main(int argc, char **argv) {
|
|||
Circle_delete(c);
|
||||
|
||||
printf("%d shapes remain\n", Shape_nshapes_get());
|
||||
printf("Goodbye\n");
|
||||
printf("Goodbye from C\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
41
Examples/c/class/runme.cxx
Normal file
41
Examples/c/class/runme.cxx
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue