引用其他对象作为引用类字段
Reference to other object as reference class field
我来自C++背景,我正在努力学习R。当我想让一个对象使用C++类跟踪另一个已经存在的对象时,我只需要添加一个指针成员。我知道默认情况下R不支持指针,但我需要将该功能添加到我的引用类中。
在C++中,我会做一些类似的事情
class foo
{
public:
foo *pAnotherFoo;
}
如果我试着做这样的事情foo <- setRefClass( "foo", fields = list(another = "foo") )
我显然得到了Error: evaluation nested too deeply: infinite recursion....
,当R试图实例化对象时,它将实例化另一个对象,依此类推(我认为?)。
我想知道是否有什么方法可以告诉R,我不希望那个字段被实例化,稍后我会给它赋值。
您似乎在R中使用引用类。如果是这样,您可以简单地定义
foo <- setRefClass('foo',
fields = list(anotherObject = 'ANY'))
我相信您可以猜到,这并不是强制anotherObject
属于foo
类,但您没有理由不能将此值设置为foo
类的对象。事实上,这样做会加快性能(否则,每次对象更改时,对象都会检查另一个对象的类)。因此,您想要的引用行为(没有类强制)可以由实现
myObj1 <- new('foo')
myObj2 <- new('foo')
myObj1$anotherObject <- myObj2
为了说明参考行为,请考虑
myObj1$anotherObject$anotherObject <- 1
myObj2$anotherObject
[1] 2
相关文章:
- 在 C++20 之前,在带有常量或引用字段的"A"上调用 'std::vector<A>
- 对象引用中的字段以不同的方法返回不同的值
- 将字段(在类中)定义为引用的缺点是什么?
- 为什么在具有引用字段的类中隐式删除复制运算符
- 通用引用和压缩字段
- C++ Arduino:向下转换后,子字段不引用原始地址
- 如何匹配通过引用传递给模拟函数的结构字段
- Const 引用字段作为类中的只读属性C++
- 正在取消引用自定义结构字段的迭代器
- 作为对象字段的右值引用
- C++:为智能指针的字段隐式保留右值引用
- 来自 gcc 原子标头的对我的类静态字段错误的未定义引用
- 为什么我无法返回对打包字段的引用?
- 如何使用 GNU C++引用继承类的字段
- 使用 std::vector、boost::variant 和带有引用字段的类型
- 引用其他对象作为引用类字段
- 是否声明抽象类型的字段?首选指针或引用
- "Undefined reference"尝试引用静态字段
- 无法引用非静态字段"x"
- 我无法通过类 Artist 的公共方法修改任何私有字段。我尝试在函数名称之前添加引用(&),但崩溃了