У меня вопрос проектирования кода.Как я могу создать класс с одной переменной и все еще работать с разными переменными одновременно?
Я построил класс, который предназначен для анализа выборки данных. Он рассматривает образец и анализирует образец. Например, он может вычислять выборочное среднее и выборочную дисперсию. Таким образом, в самой зачаточной форме она выглядит в заголовочном файле:
class Statistic{
public:
// constructors
Statistic();
Statistic(vector<double> &s);
// other functions
double calcMean(void);
double calcMean(vector<double> &s);
double calcVariance(void);
private:
vector<double> sample;
};
Теперь я хотел бы написать функцию calcCovariance
, которая может вычислить ковариация между двумя образцами. Его определение было бы что-то вроде этого:
double calcCovariance(vector<double> &s1, vector<double> &s2);
Однако класс содержит только один приватная переменная называется sample
. Как я могу лучше всего создать иерархию классов таким образом, чтобы мой класс содержал только одну переменную sample
, и я все еще могу работать с несколькими образцами одновременно?
Заранее спасибо.
Если вы хотите, чтобы ваша приватная переменная 'vector' была доступна из других объектов того же класса, вы можете сделать ее защищенной, а не частной. – Linuxios
Вы можете выставить переменную 'sample', которую вы уже имеете. – STLDeveloper
Лучший дизайн - не использовать классы вообще. – juanchopanza