+ 1

Обязательно чтобы переменная(b) была статической?и почему b=0,здесь же нигде не присвоено 0?

class A { static int b; public: void show() { cout <<b; } }; int A :: b; int main() { A x; x.show(); }

12th Aug 2018, 12:59 PM
Coder21
Coder21 - avatar
5 Answers
+ 1
b = 0, потому что компилятор, скорее всего, инициализирует 0 для переменных «int», если не указано иное. Но я бы на это не рассчитывал! Важно всегда правильно инициализировать переменные со значением. b» не обязательно «static», это зависит от того, что вы намереваетесь сделать. С «статическим» определяется переменная кассового регистра, которая существует только один раз в классе «А», независимо от того, сколько объектов вы создаете из «А». Если вы опустите «статический», вы создадите отдельную переменную «b» для каждого объекта. Таким образом, объекты могут принимать разные значения для «b». Лучше всего задавать свои вопросы на английском языке, после чего вы получите более быстрые ответы ;-)
13th Aug 2018, 5:25 PM
P.W.R.
P.W.R. - avatar
+ 2
#Peter Wilhelm Röper -thank you so much,l also posted in English,but l amn't well in English, l got answer,but l didn't undestand explanation,so l posted in Russian....вопрос задать для меня не состовляет большого труда,но вот ответ понять мне тяжело!!!
14th Aug 2018, 2:19 PM
Coder21
Coder21 - avatar
+ 1
It's best to post your questions in English, then you'll get faster answers ;-)
13th Aug 2018, 5:27 PM
P.W.R.
P.W.R. - avatar
+ 1
#Peter Wilhelm Roper-если убрать static перед int b в классе,то получается ошибка,можно объявить b вне класса,как функцию(метод)?
14th Aug 2018, 2:27 PM
Coder21
Coder21 - avatar
+ 1
Какая задача должна быть «b»? В примере я определил атрибут объекта «c» рядом с «b». https://code.sololearn.com/cLH56p4JVsVc/#cpp
15th Aug 2018, 6:13 AM
P.W.R.
P.W.R. - avatar