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

Можно ли объявлять объекты в заголовочном файле? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GetFrameTime() выдает нормальное время кадра только со второго прохода по циклу http://www.cyberforum.ru/cpp-beginners/thread1241169.html
while(1) { frameTime = GetFrameTime(); // есть функция возвращает время 1 кадра. func1(frametime); // в эту функцию отправляется время 1 кадра чтобы регулировать скорости от фпс. } Беда в том...
C++ Создать независимую функцию, которая будет умножать две матрицы Добрый день всем!:) Такой вопрос. Создала свой класс "двухмерной" матрицы. Хочу создать независимую функцию, которая будет умножать две приходящие матрицы. С указателем на указатели проблем не... http://www.cyberforum.ru/cpp-beginners/thread1241166.html
Перегрузка операторов: Можно ли вынести "тело" оператора (расчеты) из H в CPP? C++
Помогите новичку! Пишу класс и вынес его в отдельные файлы *.CPP и *.H Теперь пытаюсь переопределить операторы. Начал с = По примеру отсюда http://habrahabr.ru/post/132014/ class Integer {...
C++ Запуск программы с параметрами с командной строки
Добрый день. Хочу решить простую задачу. Пользователь должен запустить программу с параметрами с консоли. Параметров может быть 2 или 3. Либо две символьные строки (массива char), либо две строки и...
C++ Временные файлы папки Temp - как избежать ее удаления http://www.cyberforum.ru/cpp-beginners/thread1241137.html
Подскажите пожалуйста! Есть программа, после ее обновления папка sql удаляется из временной папки TEMP... Что можно сделать, чтобы эта папка не удалялась вместе с файлами после обновления?
C++ Консоль не запускается из-за отсутствия DLL Вот что выдал мне компьютер после попытки запустить мою консоль. Как это исправить? Почему консоль не запускается? Может быть, дело в том, что на этом компьютере не установлено Visual Studio, в... подробнее

Показать сообщение отдельно
DrOffset
7313 / 4413 / 999
Регистрация: 30.01.2014
Сообщений: 7,247
11.08.2014, 20:30
Цитата Сообщение от _20_ Посмотреть сообщение
Эта переменная будет использоваться только несколько раз, но в совершенно разных местах. Было бы хорошо, чтобы она была видна только в тех файлах, где она используется.
Тогда можешь прописать ее объявление (с extern естественно) непосредственно в тех файлах, где нужно. Т.е. h-файл в данном случае вообще не обязателен. Определение же оставь в каком-то одном файле.

Добавлено через 9 минут
Цитата Сообщение от _20_ Посмотреть сообщение
Было бы хорошо, чтобы она была видна только в тех файлах, где она используется.
И все равно не понятно как тебе помешает extern, ведь если ты не подключишь в какой-либо файл aa.h, то переменная a и не будет видна. А если хочется использовать только в строго фиксированных файлах, то тогда см. совет выше. Просто не делаем extern int a; в h-файле, вместо этого пишем его сразу в тех файлах, где надо.
Это должна быть именно модифицируемая из разных мест переменная?
Еще можно предложить сделать две функции интерфейсом к ней:
C++
1
2
3
4
5
6
7
8
9
// h
void set_a(int a);
int  get_a(); 
 
//cpp
static int a = 0;
 
void set_a(int v) {  ::a = v; }
int get_a() { return ::a; }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru