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

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

Войти
Регистрация
Восстановить пароль
 
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
#1

Cтатическая переменная - C++

09.07.2011, 08:11. Просмотров 503. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста почему в данном примере статическая переменная

C++
1
с
не работает.

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
#include<iostream>
using namespace std;
class a
{private:
 int b;
 static int c;
public:
a()
{c++;}
    a (int b1):b(b1)
    {}
    void fc()
   { cout<<"Мой порядковый номер - "<<b<<endl;
    cout<<"Всего объектов - "<<c<<endl<<endl;}
};
int a ::c=0;
int main ()
{setlocale(LC_ALL,"Rus");
a a1(1),a2(2),a3(3);
a1.fc();
a2.fc();
a3.fc();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2011, 08:11     Cтатическая переменная
Посмотрите здесь:

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

Переменная - C++
Мне нужная переменная(ые) в 1 байт. Где её можно взять?

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

Не инкрементируется переменная - C++
Привет. В общем так: в main() создается определенное юзером количество ботов Bot *ptrBots = new Bot ; Каждому боту я...

Неинициализированная переменная - C++
int main() { system(&quot;color 3F&quot;); SET_LOCALE int transaction_number; int temp_tr_num;

Не определяеться переменная - C++
int main(int argc, char* argv) { srand(time_t(NULL)); setlocale(LC_ALL, &quot;rus&quot;); cout &lt;&lt; &quot;Введите размер массива: &quot;; int b, w;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dmitry_gdv
64 / 64 / 5
Регистрация: 18.03.2010
Сообщений: 352
09.07.2011, 09:36     Cтатическая переменная #2
Всё там должно работать - просто для изменения переменной "c" вам необходимо вызывать конструктор без параметров

C++
1
a a1, a2, a3;
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
09.07.2011, 09:59  [ТС]     Cтатическая переменная #3
Не могли бы вы это в коде показать? я вызываю, но ошибок еще больше становится.
nameless
Эксперт C++
333 / 297 / 14
Регистрация: 16.06.2009
Сообщений: 486
09.07.2011, 10:04     Cтатическая переменная #4
parkito,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
class A
{
public:
   static int a;
   A() { a++; }
};
 
int A::a;
 
int main()
{
   A a1, a2, a3;
   
   std::cout << A::a << std::endl; // выведет 3;
 
   return 0;
}
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
09.07.2011, 10:42  [ТС]     Cтатическая переменная #5
Цитата Сообщение от nameless Посмотреть сообщение
parkito,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
class A
{
public:
   static int a;
   A() { a++; }
};
 
int A::a;
 
int main()
{
   A a1, a2, a3;
   
   std::cout << A::a << std::endl; // выведет 3;
 
   return 0;
}
Я имею понятие как выводить статическое значение. Мне не понятно почему в моем случае эта переменная не работает. Не могли бы вы интегрировать исправления в мой код?
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
09.07.2011, 10:49     Cтатическая переменная #6
Замените 11 строку в вашем коде на
C++
1
{c++;}
parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 691
09.07.2011, 20:53  [ТС]     Cтатическая переменная #7
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Замените 11 строку в вашем коде на
C++
1
{c++;}

Спасибо. А не подскажите почему мой вариант не был трудоспособным ??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2011, 21:20     Cтатическая переменная
Еще ссылки по теме:

Не присваиваеться переменная - C++
Добрый день! Такая проблема : Есть структура данных, данные заполняю с клавиатуры. Потом хочу эти же данные вывести на экран, но, тут...

Булевская переменная - C++
Написать программу, в результате выполнения которой булевская переменная t получает значение true, если выполняется указанное условие, и...

Переменная не инициализирована - C++
Всем привет решил написать простенький класс.Вот обьявление: #pragma once #include &lt;iostream&gt; #include &lt;windows.h&gt; using...

Мультитипная переменная - C++
Объясните, пожалуйста, новичку, если не сложно, как создать переменную с несколькими типами возможных данных(или без типа?) на примере... ...


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

Или воспользуйтесь поиском по форуму:
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
09.07.2011, 21:20     Cтатическая переменная #8
Цитата Сообщение от parkito Посмотреть сообщение
Спасибо. А не подскажите почему мой вариант не был трудоспособным ??
У вас есть два конструктора, и только в дефолтном есть cnt++;
когда вы пишете
C++
1
a1(1)
то вызывается конструктор с параметром(т. е. не дефолтный), в котором инкримента cnt нет.
Yandex
Объявления
09.07.2011, 21:20     Cтатическая переменная
Ответ Создать тему
Опции темы

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