+ 1
Обязательно чтобы переменная(b) была статической?и почему b=0,здесь же нигде не присвоено 0?
class A { static int b; public: void show() { cout <<b; } }; int A :: b; int main() { A x; x.show(); }
5 Answers
+ 1
b = 0, потому что компилятор, скорее всего, инициализирует 0 для переменных «int», если не указано иное. Но я бы на это не рассчитывал!
Важно всегда правильно инициализировать переменные со значением.
b» не обязательно «static», это зависит от того, что вы намереваетесь сделать. С «статическим» определяется переменная кассового регистра, которая существует только один раз в классе «А», независимо от того, сколько объектов вы создаете из «А».
Если вы опустите «статический», вы создадите отдельную переменную «b» для каждого объекта. Таким образом, объекты могут принимать разные значения для «b».
Лучше всего задавать свои вопросы на английском языке, после чего вы получите более быстрые ответы ;-)
+ 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....вопрос задать для меня не состовляет большого труда,но вот ответ понять мне тяжело!!!
+ 1
It's best to post your questions in English, then you'll get faster answers ;-)
+ 1
#Peter Wilhelm Roper-если убрать static перед int b в классе,то получается ошибка,можно объявить b вне класса,как функцию(метод)?
+ 1
Какая задача должна быть «b»? В примере я определил атрибут объекта «c» рядом с «b».
https://code.sololearn.com/cLH56p4JVsVc/#cpp