методам внутри класса, а когда нет?
Когда им не требуется доступ к данным объекта, или требуется доступ к закрытым конструкторам или другим членам.
если коротко, то когда метод не использует нестатические члены класса
То есть если приватный метод внутри использует другой приватный метод, то тот, который передаётся - нужно делать static?
Не уверен, что понял, что вы имеете ввиду. Вывод странно выглядит
Вот тут есть метод (приватный), в нём используется вот так std::packaged_task<int(const std::vector<std::vector<int>>&, const int&)> task(ColumnSum); Без static ColumnSum - ругается, со статиком - всё ок ColumnSum тоже приватный
ColumnSum это обьект внутри класса?
Метод приватный
class MatrixParallelColumnSum { public: MatrixParallelColumnSum(); explicit MatrixParallelColumnSum(const std::string& input_file_name); private: std::vector<std::vector<int>> matrix; std::vector<int> result; static std::vector<std::vector<int>> DefaultCalculateMatrixSum(); static void ResizeVector(std::vector<std::vector<int>>& matrix, const unsigned& new_size); static unsigned GetMaxSizeVector(const std::vector<std::vector<int>>& matrix); std::vector<std::vector<int>> GetMatrixFromFile(const std::string& file) const; static int ColumnSum(const std::vector<std::vector<int>>& matrix, const int& column_index); std::vector<int> SumColumnMatrix(const std::vector<std::vector<int>>& matrix) const; };
Почитайте про указатели на члены класса
Обсуждают сегодня