есть такое понятие как свойство и методы getters/setters В С++ от Borland пишем примерно так (выдрано из реального кода):
__property float Xmax = {write=set_x_max, read=x_max};
__property float Ymin[int index] = {write=set_y_min, read=get_y_min};
__property float Ymax[int index] = {write=set_y_max, read=get_y_max};
Здесь функции set_xxxx get_xxxx реализуют нужную функциональность для записи и чтения величин.
> И чтобы теперь a = List2.Field1 приводило к чтению из внешней
> памяти, а b = List1.Field1 к чтению из набортного ОЗУ.
Через getters - лехко.
> А List2 = List1 приводило к копированию из набортного во внешнее.
Если ограничиться только случаем List1.Field1 = List2.Field2
то опять же использование get/set полностью решает проблему.