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

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

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

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

13.08.2011, 14:19. Просмотров 769. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    int i = 5;
    for(int i = 0; i < 5; i++)
    {
    //здесь
    }   
    return 0;
}
можно ли как то оттуда достучатся до переменной
C++
1
int i = 5;
без использования ссылок и указателей?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2011, 14:19     Область видимости переменной
Посмотрите здесь:

Область видимости переменной - C++
Пожалуйста проясните новичку почему следующий код выводит сообщение messagebeer вместо message ? ]:-&gt;. Я только осваиваю язык поэтому хочу...

Область видимости переменной в классе - C++
допустим у меня есть класс A class A { public : ..... std::vector&lt;g *&gt; list; ...... }; и класс наследник class B :...

Область видимости переменной пользовательского класса - C++
Всем привет! Столкнулся с такой проблемой: Создал клас и в нем класс исключений class A { char* pt; public: class...

Область видимости - C++
Даю фрагмент программы: #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;cmath&gt; struct elem //тип элемента двусвязного списка ...

Область видимости - C++
func { int someVariable; { int someVariable; //можно ли как нибудь получить доступ к переменной...

Область видимости - C++
Здравствуйте. Тут такое дело: #include &lt;vector&gt; class SomeClass { public: SomeClass( std::vector&lt; int &gt; v ) : vec( v ) {} ...

Область видимости в С++ - C++
В книге С++ Бархатный путь. ( http://khpi-iip.mipk.kharkiv.edu/library/extent/prog/cppvw/cpp_047.html) сказано, что область действия имен...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
13.08.2011, 14:27     Область видимости переменной #2
Перед переменной поставить ::
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.08.2011, 14:29     Область видимости переменной #3
Цитата Сообщение от ITZver Посмотреть сообщение
Перед переменной поставить ::
Непроканает, она же не глобальная.
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
13.08.2011, 14:35     Область видимости переменной #4
Mayonez, хм.. да она же и так видна, при прямом вызове. Только конфликт со счетчиком будет
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.08.2011, 14:37     Область видимости переменной #5
ITZver, Никакого конфликта не будет, счетчик просто перекроет внешнюю переменную.
Сыроежка
Заблокирован
13.08.2011, 14:37     Область видимости переменной #6
Цитата Сообщение от Mayonez Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    int i = 5;
    for(int i = 0; i < 5; i++)
    {
    //здесь
    }   
    return 0;
}
можно ли как то оттуда достучатся до переменной
C++
1
int i = 5;
без использования ссылок и указателей?
Нет, нельзя. Чтобы было понятно, то представьте себе такой код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
   int i = 5;
   {
      int i = 6;
      {
         int i = 7;
         {
            i = 10;
         }
      }
   }
}
И что придумать, чтобы указать какой переменной i присвоить 10? Можно только отличить глобальную переменную от локальной, если перед именем глобальной переменной поставить знак глобального пространства имен:
C++
1
 ::i
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.08.2011, 14:38     Область видимости переменной #7
Цитата Сообщение от ITZver Посмотреть сообщение
да она же и так видна, при прямом вызове
Вы бы хотя б попробывали, прежде чем такое говорить.
Zverit
13.08.2011, 14:44
  #8

Не по теме:

asics, Не обратил внимание на имя переменной.

PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.08.2011, 16:03     Область видимости переменной #9
пространство имен можно использовать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace firstI
{
    int i = 5;
}
 
 
 
int main()
{
    
    for (int i = 0; i < 10; ++i)
    {
        cout << i;
        cout << firstI::i;
    }
 
    return 0;
}
Добавлено через 3 минуты
хотя нет, это будет равносильно глобальной переменной
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
13.08.2011, 16:04  [ТС]     Область видимости переменной #10
PointsEqual, но пространство имен не можно использовать внутри функциии, то по сути, это тоже самое, что обьявить i глобально и спользовать ::
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.08.2011, 16:06     Область видимости переменной #11
PointsEqual, Так вопрос был, если i локальная, при чем здась пространсво имен ?

Добавлено через 39 секунд

Не по теме:

Цитата Сообщение от PointsEqual Посмотреть сообщение
хотя нет, это будет равносильно глобальной переменной
Не увидил...

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

Область видимости - C++
У меня возникла проблема с областью видимости. вот у меня два класса class Obj { public: Win *parent;

Область видимости в классах - C++
Почему следующий пример выдает такой результат: Bar::testPrivate Bar::testPublic Я полагал он должен вывести: ...

Область видимости переменных - C++
Не компилируется программа, пишет, что count не является однозначным... #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; ...

Область видимости переменных - C++
Здравствуйте. Столкнулся со следующей проблемой: есть файл main.cpp: int a, b; #include &quot;class.h&quot; int main() { ...

Область видимости в библиотеках - C++
Есть 2 либы с одинаковыми классами Первая: ----file t1.h ----- #ifndef LOG1_H #define LOG1_H #include &lt;string&gt;


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

Или воспользуйтесь поиском по форуму:
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.08.2011, 16:06     Область видимости переменной #12
да, мой вариант не рассматривайте
Yandex
Объявления
13.08.2011, 16:06     Область видимости переменной
Ответ Создать тему
Опции темы

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