cdef extern from "Rectangle.h": ctypedef struct c_Rectangle "Rectangle": int x0, y0, x1, y1 int getLength() int getHeight() int getArea() void move(int dx, int dy) c_Rectangle *new_Rectangle "new Rectangle" (int x0, int y0, int x1, int y1) void del_Rectangle "delete" (c_Rectangle *rect) cdef class Rectangle: cdef c_Rectangle *thisptr # hold a C++ instance which we're wrapping def __cinit__(self, int x0, int y0, int x1, int y1): self.thisptr = new_Rectangle(x0, y0, x1, y1) def __dealloc__(self): del_Rectangle(self.thisptr) def getLength(self): return self.thisptr.getLength() def getHeight(self): return self.thisptr.getHeight() def getArea(self): return self.thisptr.getArea() def move(self, dx, dy): self.thisptr.move(dx, dy)