我正在上以下课:
class TheirClassA
{
public:
double GetP() const {return fP;}; // get p
private:
double fP; // p
};
为了简洁起见,我当然不包括构造函数/析构函数/ etc。 该类是在我收到的数据中给我的,因此我无法修改其代码或任何其他内容。
现在,在我的代码中,我想拥有一个类,比方说MyClass,它读取了他们的ClassA内容并将其进一步分发。有点像TheClassClassA输入的解释器。在我的代码中,我希望使用此解释器,即从MyClass而不是他们的ClassA获取数据。希望我仍然很清楚。 像这样:
TheirClassA *input = (TheirClassA*)Data->At(i);
MyClass *interpreter = new MyClass(input);
double P = interpreter->AccessP();
但是最好的方法是什么?一种简单的方法是从输入中获取值并将其另存为MyClass实例的数据成员。但是,其中一些成员可能是Double,甚至是字符串,因此,我不想浪费很多资源来复制/存储值(我将遍历数百万个输入类的实例)。
我是否可以通过某种方式定义解释器MyClass,使它的成员指向输入成员的地址,而不是保存值?这样MyClass :: AccessP()会查看theirClassA :: fP的地址并传递其值?
非常期待建议的解决方案! 预先感谢。
P.S。显然这样的东西叫做“包装纸”吗?