Форум программистов, компьютерный форум CyberForum.ru

Static переменные - C++

Восстановить пароль Регистрация
 
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
23.05.2014, 01:40     Static переменные #1
Написал небольшую программу, подключил к проекту name.h файл. В нем описание переменных static int a, b;
Почему их значения можно выводить в main? Они же static. (VS2013)
В книге Шилдnа написано, что стандарт против использования static переменных, рекомендуется метод, заключенный в использовании пространства имен. Так ли это?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2014, 01:55     Static переменные #2
Цитата Сообщение от Gygocopter Посмотреть сообщение
подключил к проекту name.h файл.
В каком файле подключили? С main()?

Добавлено через 21 секунду
Цитата Сообщение от Gygocopter Посмотреть сообщение
Так ли это?
Так.
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
23.05.2014, 01:58  [ТС]     Static переменные #3
alsav22, #include "name.h", где мейн
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2014, 02:10     Static переменные #4
Цитата Сообщение от Gygocopter Посмотреть сообщение
#include "name.h", где мейн
И в чём тогда вопрос? Всё в одном файле, поэтому и:
Цитата Сообщение от Gygocopter Посмотреть сообщение
... их значения можно выводить в main...
Добавлено через 2 минуты
Содержимое .h файлов, перед компиляцией, добавляется в то место, где сделан #include.
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
23.05.2014, 02:27  [ТС]     Static переменные #5
alsav22, а .cpp файл без файла .h не подключить к проекту?(ну чтобы был виден для мейна)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2014, 02:38     Static переменные #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
cpp просто нужно добавить в проект, чтобы компилятор знал, что компилировать. Но, если, в файле с main(), будут использоваться, например, функции из другого .cpp, то нужно, чтобы в файле с main() были видны прототипы этих функций (компилятор, в единицу времени, видит только один файл). Поэтому прототипы можно прописать или прямо в файле с main(), или прописать их в .h файле, который подключить в файле с main().

Добавлено через 2 минуты
Если же речь о переменных, определённых в другом файле .cpp, то в файле main() их нужно объявить с помощью extern (объявление без выделения памяти).
Yandex
Объявления
23.05.2014, 02:38     Static переменные
Ответ Создать тему
Опции темы

Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru