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

Глобальная видимость переменной в проекте - C++

Восстановить пароль Регистрация
 
Nikkilla
 Аватар для Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
08.12.2013, 17:36     Глобальная видимость переменной в проекте #1
Как сделать, чтобы переменная была доступна в любой части проекта?

Делаю так:
Код
// test_me_1.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "test_me_1.h"


int _tmain(int argc, _TCHAR* argv[])
{
	myClass->setUpdate();
	system("pause");
	return 0;
}
Код
// test_me_1.h описывает глобальные переменные
#include "MyClass.h"

static int* my_int = new int(10);
static MyClass* myClass = new MyClass();

static int* getMyInt();

static int* getMyInt()
{
	return my_int;
}
Код
// MyClass.h класс, в котором должны использоваться глобальные переменные.
#include <iostream>

class MyClass
{
public:
	MyClass()
	{

	}

	void setUpdate()
	{
		std::cout << "My int from MyClass.h: " << *getMyInt() << "\n";
	}
};
Дело в том, что при компиляции выдает ошибку:
1>c:\users\admin\documents\visual studio 2010\projects\test_me_1\test_me_1\myclass.h(13): error C3861: getMyInt: идентификатор не найден
В учебнике написано, что для глобальной видимости достаточно написать индефикатор static перед переменной или ф-цие. У меня в .cpp переменные видит, а в файле класса - нет. Как можно решить данную проблему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 17:36     Глобальная видимость переменной в проекте
Посмотрите здесь:

C++ Глобальная переменная
C++ Глобальная переменная
static и глобальная видимость C++
видимость переменной C++
Видимость переменной C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
08.12.2013, 17:44     Глобальная видимость переменной в проекте #2
static ограничивает видимость в единице трансляции
Nikkilla
 Аватар для Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
08.12.2013, 17:46  [ТС]     Глобальная видимость переменной в проекте #3
а как распостранить видимость на весь проект?
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 17:49     Глобальная видимость переменной в проекте #4
Nikkilla, попробуйте в MyClass.h объявить:
C++
1
extern int getMyInt();
и потом вызывать.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.12.2013, 17:49     Глобальная видимость переменной в проекте #5
Цитата Сообщение от Nikkilla Посмотреть сообщение
В учебнике написано, что для глобальной видимости достаточно написать индефикатор static перед переменной или ф-цие.
Хотелось бы увидеть этот учебник... Глобальное объявление - это объявление вне каких-либо функций. Чтобы такую переменую можно было использовать в других файлах, её нужно объявить в этих файлах как extern. Если к глобальному объялению добавить static, то видимость такой переменной ограничена данным файлом.
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 17:50     Глобальная видимость переменной в проекте #6
alsav22,

Не по теме:

простите, вопрос не по теме, но и отдельный топик писать для этого не хочется. что делает оператор разрешения области видимости - :: ?

Alexsandr_S
5 / 5 / 1
Регистрация: 23.10.2013
Сообщений: 18
08.12.2013, 17:51     Глобальная видимость переменной в проекте #7
допиши в MyClass.h #include"test_me_1.h" где ты объявляеш эту переменную
alsav22
08.12.2013, 18:08
  #8

Не по теме:

Цитата Сообщение от lpvoid Посмотреть сообщение
что делает оператор разрешения области видимости - :: ?
Ну, как что? Указывает область (пространство имён, класс) нахождения того, что за ::. Если имени перед :: нет, то глобальное пространство имён.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 18:10     Глобальная видимость переменной в проекте
Еще ссылки по теме:

в проекте - надо в проекте win32api вынести все в другой *cpp* а не получаеться C++
C++ a,b и c.Присвоить максимальное из них переменной a,минимальное-переменной c,среднее переменной b
C++ Глобальная переменная

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

Или воспользуйтесь поиском по форуму:
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
08.12.2013, 18:10     Глобальная видимость переменной в проекте #9
alsav22, спасибо, интересно было именно если перед ним имени нет. +1 вам.
Yandex
Объявления
08.12.2013, 18:10     Глобальная видимость переменной в проекте
Ответ Создать тему
Опции темы

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