Вы, кажется, неправильно используете некоторые слова, поэтому я попытаюсь уточнить
class myclass {
private:
int data;
void func1(); // private mutator function
void func2() const; // private accessor function
static void func3(); // private static function
public:
int moredata;
void func4(); // public mutator function
void func5() const; // public accessor function
static void func6(); // public static function
}
void func7(myclass); // free function
static void func8(myclass); // static function can't be accessed outside file.
Как правило, перегрузки операторов, как правило, освобождают функции, поэтому их можно найти во время поиска, если требуется преобразование.
Закрытые функции используются, когда никакие внешние функции или классы не будут вызывать эти функции.
Статические функции используются, когда они не читают или не записывают в myclass, но являются неотъемлемой частью концепции класса.
Постоянные функции могут использоваться на const
объектах и не изменять класс.