Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

глобальные переменные?

81K
16 апреля 2012 года
lyford
2 / / 16.04.2012
Чем являются root и res? Это же не прототип и не глобальная переменная? А если последнее, то зачем скобки? Что это?Подскажите, пожалуйста, будьте любезны.
 
Код:
#include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;

int root(1), res(0);
void main(){}
1
16 апреля 2012 года
kot_
7.3K / / 20.01.2000
Никакой ошибки здесь нет. Объявлены две переменные видимости модуля и инициализированы по месту объявления.
Это не пример "хорошего" и безпроблемного кода - но это и не ошибка.
А вот это:
 
Код:
int root; // root,res - глобальные переменные
int res;
как раз таки повод гнать автора сцаными тряпками. Потому что это классический пример того, как создать себе проблемы на пустом месте.
75K
16 апреля 2012 года
zitxbit
43 / / 03.04.2012
Код:
#include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;

int root(1), res(0); // Грубейшая ошибка
void main(){}

#include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;

int root; // root,res - глобальные переменные
int res;

void main(){}

или

#include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;

int root(int); // root, res - функции с параметром int
int res(int);

void main(){}
271
16 апреля 2012 года
MrXaK
721 / / 31.12.2002
Вообще так обычно внутри классов объявляют, в конструкторах например:
 
Код:
class foo {
 private:
  int a;
 public:
  foo(_a): a(_a) {};
}
Это, имхо, единственный приемлемый вариант применения этой конструкции с точки зрения понимания кода.
81K
16 апреля 2012 года
lyford
2 / / 16.04.2012
Спасибо, Kot_. Стало яснее. Если программа состоит из одного единственного модуля и переменные объявлены таким образом, то можно ли считать их глобальными? Да ведь?!.
277
16 апреля 2012 года
arrjj
1.7K / / 26.01.2011
Скобки там чтоб инициализировать с нужным значением. Аналогично int root=1; int res=0; Если им не придать начальные значения то будет чтото типа -359432, 2546138
1
17 апреля 2012 года
kot_
7.3K / / 20.01.2000
Цитата: lyford
Спасибо, Kot_. Стало яснее. Если программа состоит из одного единственного модуля и переменные объявлены таким образом, то можно ли считать их глобальными? Да ведь?!.


Да, эти переменные являются глобальными. Объявление их подобным образом является "плохим стилем" - потому что ничто не указывает что это глобальные переменные, легко ошибится и т.п. - но само объявление никакой ошибки не содержит.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог