Я работаю со следующим классом:
class TheirClassA
{
public:
double GetP() const {return fP;}; // get p
private:
double fP; // p
};
Конечно, существуют также конструкторы / деструкторы / и т. Д., Которые я не включаю для краткости.Этот класс предоставляется мне в данных, которые я получаю, поэтому я не могу изменить его код или что-либо еще.
Теперь в моем коде я хочу иметь класс, скажем, MyClass, который читает содержимое ItsClassA и распределяет ихв дальнейшем.Вроде как интерпретатор ввода OurClassA.В моем коде я хочу работать с этим интерпретатором, то есть получать данные из MyClass вместо OurClassA.Надеюсь, мне все еще ясно.Что-то вроде:
TheirClassA *input = (TheirClassA*)Data->At(i);
MyClass *interpreter = new MyClass(input);
double P = interpreter->AccessP();
Но как лучше всего это сделать?Простой способ - получить значения из входных данных и сохранить их как члены данных экземпляра MyClass.Однако некоторые из этих членов могут быть Double или даже строками, поэтому я не хочу тратить много ресурсов на копирование / хранение значений (я буду зацикливаться на миллионах экземпляров входного класса).
Есть ли способ для меня как-то определить интерпретатор MyClass таким образом, чтобы его члены указывали на адреса членов ввода вместо хранения значений?Так что MyClass :: AccessP () смотрит на адрес ItsClassA :: fP и передает его значение?
С нетерпением ждем предлагаемых решений!Заранее спасибо.
PS Видимо, такая вещь называется «обертка»?