The private/public distinction in Cython is not as in C++, it is just
related to exposing C/C++ stuff to Python land... Inside a module
coded in Cython, everything is (in the C++ sense) public .
Yur do_something_on_Polygon() is missing a "cast", or Cython does not
know that someting is actually a cdef class.
def do_something_on_Polygon(self,Rectangle_list):
cdef Rectangle r = Rectangle_list[0]
self.thisptr.do_something(r.thisptr)
On Sat, Mar 21, 2009 at 5:09 AM, Christian Andreetta <[email protected]> wrote:
> Hello,
>
> is there a way to access a C++ class private *thisptr from another
> class/function?
> something like (from wiki.cython.org/WrappingCPlusPlus):
>
> cdef class Rectangle:
> cdef c_Rectangle *thisptr
> def __cinit__(self):
> self.thisptr = new_Rectangle()
> # rest of implementation
>
> cdef class Obj_mangler:
> cdef c_Obj_mangler *thisptr
> def __cinit__(self):
> self.thisptr = new_Obj_mangler()
> def do_something_on_Polygon(self,Rectangle_list):
> # Rectangle_list is a list of Python objects wrappers
> # do_something is a void() c++ function accepting object pointers
> self.thisptr.do_something(Rectangle_list[0].thisptr)
>
> Thanks!
> _______________________________________________
> Cython-dev mailing list
> [email protected]
> http://codespeak.net/mailman/listinfo/cython-dev
>
--
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev