Listing 10: native_wrap.h (sample 2).

extern "C" { 
struct EllipseData_wrap {
  double r1;
  double r2;
};
// abstract pointer typ
struct NativeClass_wrap;
// constructor
NativeClass_wrap * newNativeClass();
// destructor
void deleteNativeClass( NativeClass_wrap *& native);
// method
double calcEllipse( NativeClass_wrap * native, EllipseData_wrap input);
} /* extern "C" */