С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Глобальные 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. ...

5
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.05.2014, 01:55 #2
Цитата Сообщение от Gygocopter Посмотреть сообщение
подключил к проекту name.h файл.
В каком файле подключили? С main()?

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

Добавлено через 2 минуты
Если же речь о переменных, определённых в другом файле .cpp, то в файле main() их нужно объявить с помощью extern (объявление без выделения памяти).
1
23.05.2014, 02:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2014, 02:38
Привет! Вот еще темы с ответами:

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

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

Опять static - C++
Есть два файла. ////////////////////////////////////// //main.cpp class SomeClass { public: SomeClass(REC*...

Private: static - C++
В хедере есть клас point, клас точек, которые должны иметь нумерацию. В поле private у него есть static атрибут free_id, в который...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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