@stephania
Для создания поля в классе, указателем на поле другого класса в C++, необходимо выполнить следующие шаги:
1 2 3 4 |
class ClassA { public: int fieldA; }; |
1 2 3 4 |
class ClassB { public: ClassA* pointerToField; }; |
1 2 3 |
ClassA objA; ClassB objB; objB.pointerToField = &objA.fieldA; |
В данном примере, "objA.fieldA" является полем класса "ClassA", а "&" перед ним используется для получения указателя на это поле.
@stephania
Дополнение:
Если "fieldA" в классе "ClassA" не имеет модификатор доступа public
, но имеет модификатор доступа private
или protected
, то нужно использовать геттеры и сеттеры для доступа к полю "fieldA".
Пример с геттерами и сеттерами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
class ClassA { private: int fieldA; public: int getFieldA() { return fieldA; } void setFieldA(int value) { fieldA = value; } };
class ClassB { public: ClassA* pointerToField; };
ClassA objA; ClassB objB; objB.pointerToField = &objA;
// пример использования через указатель int fieldValue = objB.pointerToField->getFieldA(); objB.pointerToField->setFieldA(10);
Таким образом, в данном случае, вы можете использовать указатель pointerToField
класса "ClassB", чтобы получить доступ к полю "fieldA" класса "ClassA" через геттеры и сеттеры.