Исходя из того, как вы задали вопрос, первое, что вам нужно серьезно рассмотреть, это то, нужны ли вам занятия вообще.
Одна ловушка, в которую часто попадают новички, это вера в то, что все должно быть вучебный класс.Хотя это правда, что некоторые языки требуют этого, это вариант, но не обязательно - и даже может быть очень плохой идеей - в C ++.
Если только нет фактических отношений «есть»между классами (например, базовый класс представляет Dog
, а производные классы представляют типы собак), вероятно, лучше вообще не использовать наследование.
[Существуют обстоятельства, когда уместна иерархия классов, дажеесли нет отношений «есть», но если бы ваша ситуация была такой, вам почти наверняка не пришлось бы задавать вопрос, который у вас есть.]
Вместо этого я бы просто определилвосемь функций, не являющихся членами (то есть не являющихся членами класса) с соответствующими аргументами и типом возвращаемого значения.Аргументы и возвращаемое значение (если есть) могут использоваться как для передачи информации в функцию, так и для передачи информации обратно.
Затем четыре класса вызывают функции по мере необходимости.Однако из вашего описания даже не ясно, что вам нужны эти четыре класса.Возможно, все, что нужно, - это набор функций, которые реализуются путем вызова ваших «8 длинных методов».Эти «8 длинных методов» могут быть реализованы локально в исходном файле, если вам нужно запретить другим программам вызывать их.
Вообще говоря, постарайтесь сделать свой дизайн максимально простым.Если это достижимо без иерархии классов или вообще без определения классов, не используйте классы.