Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ogcjm124
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
#1

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

15.12.2011, 20:20. Просмотров 644. Ответов 4
Метки нет (Все метки)

Ребят есть задание:

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

Ошибка инициализации переменной при чтении структурированного файла
Почему выдаёт ошибку: "Использована неинициализированная локальная переменная...

Ошибка инициализации переменной
Подскажите, пожалуйста, как исправить ошибку инициализации vp в данном случае?...

Непонятная ошибка инициализации переменной
Можете объяснить плес, почему в этам коде ошипка? int x(int()); Пишет...

Ошибка инициализации переменной заданного типа
Ошибка в 45ой и 59ой строках. Подскажите, как все-же правильно инициализировать...

Указание типа переменной и ссылки при объявлении\инициализации
Здравствуйте! Возник такой вопрос-зачем нужно указывать тип ссылки при ее...

Уравнение больше реагирует на значение при инициализации переменной
Доброго времени дня! Возникла проблема не пойму в чем дело.. Вот кусок...

4
gooseim
Эксперт С++
510 / 414 / 92
Регистрация: 23.09.2010
Сообщений: 1,159
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;
}
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
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;
}
0
ogcjm124
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
15.12.2011, 21:04  [ТС] #4
А чем это переменная такая особенная?Что для неё надо писать,скажем, отдельный конструктор?
0
DU
1486 / 1132 / 164
Регистрация: 05.12.2011
Сообщений: 2,279
15.12.2011, 21:14 #5
Она статическая. Одна на все инстансы вашего класса. Поэтому она должна быть проинициализирована один раз глобально, а не каждый раз в конструкторе вашего класса, как можно было бы подумать.
1
15.12.2011, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 21:14
Привет! Вот еще темы с решениями:

При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации
код: #include <iostream> #include <conio.h> int A,n,m; using namespace...

Для чего при инициализации переменной писать на конце числа первую букву типа?
Например, long long a=123456789123344LL чем будет отличаться от long...

Ошибка при инициализации
На 3 и 4 строчку показывает отладчик при вылете. BADpixel *enemy; pixel...

Ошибка нарушения прав доступа при чтении по адресу, возникающая при инициализации трехмерного массива
Очень нужна ваша помощь! Я уже не знаю что тут можно сделать. Код части...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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