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

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

Войти
Регистрация
Восстановить пароль
 
 
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
#1

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

26.01.2013, 17:52. Просмотров 536. Ответов 15
Метки нет (Все метки)

Доброго времени суток !

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

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.
Что делать подскажите ...
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2013, 17:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменная не изменяется (C++):

Не изменяется переменная, нужно внести изменения в прогу - C++
Недавно начал учить C++, попросили сделать прогу через свитч и цыкл. Всё вроде правильно, но переменная cost не меняет своё значение....

Хочу разобраться с прототипами функций, const но переменная изменяется - C++
Оригиналы хэш функций тут - назовем это ENG статьёй Я так подозреваю написано это на С, но вполне без изменений запустится на С++ ...

Глобальная переменная определена в хидере. Компилятор ругается на то, что переменная переопределена несколько раз - C++
Исходники: /* main.cpp */ #include &quot;hider.h&quot; int main(void) { return 0; } /* foo.cpp */

Переменная или переменная и условие - C++
Привет всем. Стало интересно. Есть предположим функция. В ней ссылкой передается аргумент Status; Как лучше сделать? ...

Const аргумент изменяется - C++
str (const char *b) { std::cout &lt;&lt; b &lt;&lt; std::endl; pbase = new char; std::cout &lt;&lt; b &lt;&lt; std::endl; } str() — конструктор....

Изменяется значение щетчика - C++
програма читает с файлов числа, и выводит на екран. Не могу понять, почему щетчики i,j после исполнения цыкла увеличиваются на 1? Пишу в VS...

15
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 17:53 #2
Maratovich, как понять "глобально"?
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 17
26.01.2013, 17:54 #3
Maratovich, Чего ?

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


Но у меня она не изменяется.
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 17
26.01.2013, 18:02 #5
Хватит нести ерунду и выложи весь код полностью...
0
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;
0
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
26.01.2013, 18:08 #7
Maratovich, не должен. Вы создали 2 разных экземпляра НИКАК не связанных друг с другом.
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 17
26.01.2013, 18:09 #8
Разные классы, разные объекты, с какой стати данные должны быть одни ?
1
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:09  [ТС] #9
Цитата Сообщение от Kgfq Посмотреть сообщение
Maratovich, не должен. Вы создали 2 разных экземпляра НИКАК не связанных друг с другом.
тогда вы можете подсказать как сделать что бы сработало, то, что я хочу
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 17
26.01.2013, 18:11 #10
C++
1
static bool progress;
Добавлено через 46 секунд
C++
1
2
3
4
static void s()
{
        progress = false;
}
итд...
1
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:13  [ТС] #11
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
0
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,395
Завершенные тесты: 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;
}
1
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,806
Записей в блоге: 17
26.01.2013, 18:17 #13
Цитата Сообщение от Maratovich Посмотреть сообщение
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
Ну да...
Но до конца непонятно что вам надо ...
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.01.2013, 18:24 #14
Цитата Сообщение от Maratovich Посмотреть сообщение
ну тогда и методы должны быть статическими, т.к. я использую статическую переменную ?
необязательно
0
Maratovich
13 / 17 / 1
Регистрация: 05.09.2012
Сообщений: 210
26.01.2013, 18:50  [ТС] #15
Я вот хотел еще спросить.
Вызывается ли второй раз коструктор если вызываешь статический метод ?
Например :
C++
1
SomeKlass::SomeMethod
в этом случае вызывается ли второй раз конструктор(без параметров) класса SomeKlass.

Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2013, 18:50
Привет! Вот еще темы с ответами:

не изменяется размер Canvas - C++
Всем доброго времени суток. Есть программа (пока что на стадии разработки). Суть такая: она по нажатию кнопки открывает 2ую форму на...

Функция суммы, не изменяется значение - C++
#include &lt;iostream&gt; using namespace std; int sum(int); int main() { int value = 10; cout &lt;&lt; &quot;sum = &quot; &lt;&lt; sum(value) &lt;&lt;...

Значение аргумента х изменяется от а до b с шагом h - C++
Здравствуйте уважаемые любители и ценители языка С++! У меня к вам огромная просьба. На днях нужно сдать контрольную работу по предмету...

Не изменяется значение элемента класса - C++
Часть программы: class Saving { public: ... void set(double); double calculate(); double get() const;


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
26.01.2013, 18:50
Ответ Создать тему
Опции темы

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