@Mr-Governor
Губернирую

Почему в этом случае не используют ключевое слово static?

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

В вики: https://en.wikipedia.org/wiki/Static_(keyword)
написано, что если функция-член статическая, то она будет единой для всех экземпляров.

Я не понял, к чему это, ведь так всегда и происходит.

1) Если я опишу тело функции-члена прямо в классе, то она должна стать inline (или я явно укажу inline).
2) Если я опишу тело функции отдельно, то она будет единой для всех экземпляров.

Скажите, следующие варианты аналогичны?

class Man
{
public:
    void add();
};

void Man::add() //Отдельно
{
    тело;
}


class Man
{
public:
    static void add()
    {
        тело;
    }
};


Если да, то почему я никогда не видел второй пример в деле?
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Исходите вот из чего.
Функция призвана что то модифицировать. Если функция нестатическая - она может модифицировать только данные экземпляра, у которого вызвана.
Если статическая - то только общие данные.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы