Member 13128909 Ответов: 1

Как я могу обмениваться данными/получать доступ к данным между классами, которые полагаются друг на друга?


Я учу себя программированию, и я нахожусь в середине создания огромного класса. Чтобы улучшить читабельность и функциональность, я хочу разделить некоторые функции этого класса на более мелкие классы. Мне удалось сделать это для некоторых функций инструментов, которые не должны быть ограничены для каждого объекта и которые передают переменную обратно по мере необходимости. Однако когда я пытаюсь сделать что-то немного более сложное, например, иметь класс, который читает данные и хранит их в массивах, из которых мой основной класс может затем читать и хранить то, что он читает, или использовать то, что он читает, чтобы изменить закрытую переменную, я полностью застрял.

Например, если я сделаю класс Num с публичными arr1[20] и arr2[20] и двумя функциями-членами, которые заполняют их 20 числами, как бы я тогда прочитал конкретную ячейку или прочитал массив с моим основным классом, чтобы я мог, например, взять номер ячейки 4 и поместить его в свою частную переменную, или сравнить arr1[16] < arr1[17] так сделать это?

В принципе, у меня возникли проблемы с тем, что основной класс может читать, копировать или сравнивать данные из другого класса.

Что я уже пробовал:

Я пробовал перемещать различные переменные и функции в классы и из них, делая их привязанными к их источнику, входя в них и выходя из них... Я просто не знаю, как заставить эти классы общаться и использовать информацию друг друга, будь то публичную или частную. Конечно, я могу использовать set/gets в теории, но я не уверен, как их разложить или как разложить код, чтобы set/gets функционировал так, как я намереваюсь.

Richard MacCutchan

Класс, содержащий данные, должен предоставлять методы, позволяющие получить доступ к данным. Весь смысл ООП заключается в том, что доступ к данным осуществляется только через методы класса. Как эти данные хранятся внутри компании, никого больше не касается.

1 Ответов

Рейтинг:
1

PJ Arends

Взгляните на friend классы и функции. Друг имеет доступ к закрытым и защищенным членам. Однако будьте осторожны с ними, так как ими легко злоупотреблять.