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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
#1

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

23.05.2014, 01:40. Просмотров 209. Ответов 5
Метки нет (Все метки)

Написал небольшую программу, подключил к проекту name.h файл. В нем описание переменных static int a, b;
Почему их значения можно выводить в main? Они же static. (VS2013)
В книге Шилдnа написано, что стандарт против использования static переменных, рекомендуется метод, заключенный в использовании пространства имен. Так ли это?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 01:40     Static переменные
Посмотрите здесь:

Глобальные static переменные - C++
main.h class Test { public: void test(); }; static int x; test.cpp

Компилятор ругается на static переменные - C++
Есть класс: class Node{ public: Node(void) : data(0), next(0), prev(0), first(0), last(0), size(0){} Node(const _My& Val){ ...

глобальные static-переменные и разбиение на файлы - C++
Подскажите как связываются файлы при работе со static-переменными? К примеру если я хочу чтобы у меня static переменные были в одном...

Как работают static-переменные объявленные в в базовом классе? - C++
Информации увидел много, но суть так и не могу уловить. Образовалась пара вопросов: 1. Если я создаю static-переменную в классе и делаю...

Создать программу обработки массивов структур используя структурные переменные и переменные типа объеденения - C++
Создать массив структур, каждая из которых состоит из следующих елементов: факультет, курс, группа, фамилия студента и екзаменационная...

Переменные,значение функции,вспомогательные переменные. - C++
1)Даны переменные A,B,C.Изменить их значения,переместив их содержимое из A-в B,B-в C,C-в A,и вывести новые значения переменных A,B,C. ...

Создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар - C++
Здравствуйте. Необходимо создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар. ругается в...

Static - C++
zagolovok.hpp static int a; основной модуль #include <iostream> #include "zagolovok.hpp" int main

static const - C++
объясните, пожалуйста, вот такую странную конструкцию (накопал в старой проге): после #include идет следующее: static const char...

Static Library - C++
Привет всем! Нужно проанализировать (понять, что она делает) статичную библиотеку, собранную под Linux (.a), используя Windows. Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
5416 / 4812 / 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
5416 / 4812 / 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 переменные
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru