首页 > 解决方案 > 使用 Rcpp 公开构造函数,该构造函数将指向对象的指针作为参数

问题描述

我有以下非常简单的代码,它定义了一个 B 类,该 B 类将指向 A 类对象的指针作为参数。

如果我将其编译为独立的 C++,则该代码可以完美运行,但我无法使用 Rcpp 公开 B 类。.constructor<A>()我一定在接近尾声的那一行做错了什么。尝试了 &、* 等的所有组合,但没有任何效果。经过几个小时的尝试,我迷路了。欢迎任何想法。

#include <Rcpp.h>

using namespace Rcpp;

class A {
public:
  A(int val_) { val = val_; }
  int val;
};

class B {
public:
  B(A& ptr_) { ptr = &ptr_; }
  int getval() { return (this->ptr->val); }
  A *ptr;
};

RCPP_MODULE(module_cpp) {
    using namespace Rcpp;

    class_<A>("A")
    .constructor<int>()
    .field("val", &A::val)
    ;

    class_<B>("B")
    .constructor<A>()
    ;
}

标签: c++ooprcpp

解决方案



推荐阅读