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

Переменная не изменяется - C++

Восстановить пароль Регистрация
 
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 17:52     Переменная не изменяется #1
Доброго времени суток !

Нужна ваша помощь. Вроде бы вопрос легкий, но не могу понять как сделать.
Допустим есть код :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
class s
{
public:
    bool progress;
 
    s()
    {
        progress = false;
    }
 
    void b()
    {
        progress = true;
    }
};
так вот мне нужно чтобы переменная progress изменилась глобально на true, а она меняется только в функции b.
Что делать подскажите ...
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 17:53     Переменная не изменяется #2
Maratovich, как понять "глобально"?
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
26.01.2013, 17:54     Переменная не изменяется #3
Maratovich, Чего ?

Вызывай метод s() и b() и она изменится ...
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:01  [ТС]     Переменная не изменяется #4
еще допустим, что этот класс наследует другой класс например VasyaPupkin так мне нужно чтобы после вызова метода b() в классе VasyaPupkin переменная progress изминилась на true


Но у меня она не изменяется.
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
26.01.2013, 18:02     Переменная не изменяется #5
Хватит нести ерунду и выложи весь код полностью...
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:06  [ТС]     Переменная не изменяется #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
class s
{
public:
    bool progress;
 
    s()
    {
        progress = false;
    }
 
    void b()
    {
        progress = true;
    }
};
 
class VasyaPupkin:public s
{
public:
    void showProgress()
    {
        cout<<progress;
    }
};
 
int main()
{
 
    s s1;
    VasyaPupkin vp;
 
 
    s1.b();
    vp.showProgress();
 
    return 0;
}
выводит false, а должен true;
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 18:08     Переменная не изменяется #7
Maratovich, не должен. Вы создали 2 разных экземпляра НИКАК не связанных друг с другом.
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
26.01.2013, 18:09     Переменная не изменяется #8
Разные классы, разные объекты, с какой стати данные должны быть одни ?
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:09  [ТС]     Переменная не изменяется #9
Цитата Сообщение от Kgfq Посмотреть сообщение
Maratovich, не должен. Вы создали 2 разных экземпляра НИКАК не связанных друг с другом.
тогда вы можете подсказать как сделать что бы сработало, то, что я хочу
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
26.01.2013, 18:11     Переменная не изменяется #10
C++
1
static bool progress;
Добавлено через 46 секунд
C++
1
2
3
4
static void s()
{
        progress = false;
}
итд...
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:13  [ТС]     Переменная не изменяется #11
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
26.01.2013, 18:13     Переменная не изменяется #12
C++
1
2
3
4
5
6
7
int main()
{
    VasyaPupkin vp;
    vp.b();
    vp.showProgress();
     return 0;
}
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
26.01.2013, 18:17     Переменная не изменяется #13
Цитата Сообщение от Maratovich Посмотреть сообщение
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
Ну да...
Но до конца непонятно что вам надо ...
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.01.2013, 18:24     Переменная не изменяется #14
Цитата Сообщение от Maratovich Посмотреть сообщение
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
необязательно
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:50  [ТС]     Переменная не изменяется #15
Я вот хотел еще спросить.
Вызывается ли второй раз коструктор если вызываешь статический метод ?
Например :
C++
1
SomeKlass::SomeMethod
в этом случае вызывается ли второй раз конструктор(без параметров) класса SomeKlass.

Спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2013, 19:02     Переменная не изменяется
Еще ссылки по теме:

C++ Почему не изменяется строка в массиве?
Const аргумент изменяется C++
C++ Не изменяется значение элемента класса

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.01.2013, 19:02     Переменная не изменяется #16
нет, статический метод глобален.
Yandex
Объявления
26.01.2013, 19:02     Переменная не изменяется
Ответ Создать тему
Опции темы

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