Wednesday, 15 January 2014

r - RCPP_MODULE for inheritance class -



r - RCPP_MODULE for inheritance class -

i got problem when seek module inheritance class. basiclly, can't compile part.

rcpp_module(pace){ using namespace rcpp; class_<fpcareg>("fpcareg") .constructor<list, list, double, double, int, bool, bool>() .field("n", &fpcareg::n) ; }

here fpcareg inheritance class based on fpca class, , "n" defined in fpca. no matter utilize ".field("n", &fpcareg::n)" or ".field("n", &fpca::n)". when utilize ".field("n", &fpcareg::n)", error message "no matching function phone call blablabla", , ".field("n", &fpca::n)", that's same different class name. there suggestion? thanks.

you can declare fields , methods actual class. however, can expose base of operations class , derived class, , hint inheritance between them in derives.

here example:

#include <rcpp.h> using namespace rcpp; class base of operations { public: base(double x_) : x(x_){} double x; } ; class derived : public base of operations { public: derived(int y_) : base(2.0), y(y_){} int y ; } ; rcpp_module(pace){ class_<base>("base") .constructor<double>() .field("x", &base::x) ; class_<derived>("derived") .derives<base>("base") .constructor<int>() .field("y", &derived::y) ; }

i r:

> obj <- new(derived, 10l) > obj$y [1] 10 > obj$x [1] 2

r rcpp

No comments:

Post a Comment