Я хотел бы создать объект C++ для обертывания ОЗУ внешнего периферийного устройства. Я пытаюсь настроить что-то вроде следующего:Как сопоставить удаленное устройство как массив на C++?
Периферийное p;
p [4] = 10;
int n = p [5];
Для этого мне нужно читать или писать на периферию всякий раз, когда к элементу массива обращаются. Я не могу понять, как это сделать, используя перегрузку оператора и т. Д. Я могу вернуть объект «accessor», который можно использовать как lvalue во второй строке:
PeripheralAccessor Peripheral :: operator [] (int i);
или я могу определить «простой» оператора, который может использоваться для считывания Int из периферийного устройства на третьей линии:
INT Периферийное :: Оператор [] (INT I);
, но я не могу заставить их сосуществовать, чтобы обеспечить доступ как для чтения, так и для записи на периферию. Я могу определить этот второй оператор как оператор const (rvalue), но он ТОЛЬКО будет вызван для экземпляра const класса, которого недостаточно для моих нужд ...
Надеюсь, я объяснил, что Я пытаюсь достичь здесь ясно; может ли кто-нибудь предложить, как я должен это делать (или действительно ли это возможно)?
+1, писал одно и то же. –
@Nikolai такой же здесь. – Cogwheel
Блестящий, спасибо. Это был факт, что вы могли бы сделать: оператор int() , что я не разработал. – Jonny