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

Ошибка при инициализации статистической переменной. - C++

Восстановить пароль Регистрация
 
ogcjm124
2 / 2 / 0
Регистрация: 31.07.2011
Сообщений: 143
15.12.2011, 20:20     Ошибка при инициализации статистической переменной. #1
Ребят есть задание:

В класс строки (пользовательский класс ) добавить статическую защищенную (protected) переменную "счетчик количества созданных объектов", изначально инициализировать ее нулем.

Пытаюсь сделать так (фрагмент кода),выдаёт ошибку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CMyString{
    char *pStr;
protected:
     static int num;
public:
    CMyString();
};
 
//конструктор
 
CMyString::CMyString(){
        num=0;
        pStr=new char[1];
        *pStr=(char)0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
15.12.2011, 20:50     Ошибка при инициализации статистической переменной. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class CMyString{
        char *pStr;
protected:
         static int num;
public:
        CMyString();
};
 
int CMyString::num;
//конструктор
 
CMyString::CMyString(){
                num++;
                pStr=new char[1];
                *pStr=(char)0;
}
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
15.12.2011, 20:51     Ошибка при инициализации статистической переменной. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class CMyString{
        char *pStr;
protected:
         static int num;
public:
        CMyString();
};
 
int CMyString::num = 0;
//конструктор
 
CMyString::CMyString(){
                num++;
                pStr=new char[1];
                *pStr=(char)0;
}
ogcjm124
2 / 2 / 0
Регистрация: 31.07.2011
Сообщений: 143
15.12.2011, 21:04  [ТС]     Ошибка при инициализации статистической переменной. #4
А чем это переменная такая особенная?Что для неё надо писать,скажем, отдельный конструктор?
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.12.2011, 21:14     Ошибка при инициализации статистической переменной. #5
Она статическая. Одна на все инстансы вашего класса. Поэтому она должна быть проинициализирована один раз глобально, а не каждый раз в конструкторе вашего класса, как можно было бы подумать.
Yandex
Объявления
15.12.2011, 21:14     Ошибка при инициализации статистической переменной.
Ответ Создать тему
Опции темы

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