Функция-член, возвращающая статическую переменную - PullRequest
5 голосов
/ 07 сентября 2011

Должна ли функция-член, которая возвращает static переменную-член, также быть static?

Например:

struct T {
   static int i;
   static int getNumber() {
       return i;
   }
};

Должно ли getNumber быть static или нет?

Ответы [ 2 ]

7 голосов
/ 07 сентября 2011

Обычно да.

Если переменная не имеет состояния для каждого экземпляра, то какую возможную логику для каждого экземпляра могла бы выполнить функция перед возвратом?

2 голосов
/ 07 сентября 2011

Это не обязательно.Вы можете написать функцию-член, которая возвращает статическую переменную.Вы не можете пойти другим путем (напишите статическую функцию, которая возвращает переменную экземпляра).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...