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

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

Войти
Регистрация
Восстановить пароль
 
ogcjm124
2 / 2 / 0
Регистрация: 31.07.2011
Сообщений: 143
#1

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

15.12.2011, 20:20. Просмотров 621. Ответов 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++):

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

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

Ошибка инициализации переменной заданного типа - C++
Ошибка в 45ой и 59ой строках. Подскажите, как все-же правильно инициализировать переменную t типа "rabotnik"? /* Исходный список...

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

Уравнение больше реагирует на значение при инициализации переменной - C++
Доброго времени дня! Возникла проблема не пойму в чем дело.. Вот кусок программы. double x,y; ............... else if (i==1){ ...

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

4
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 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
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
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 / 0
Регистрация: 31.07.2011
Сообщений: 143
15.12.2011, 21:04  [ТС] #4
А чем это переменная такая особенная?Что для неё надо писать,скажем, отдельный конструктор?
0
DU
1484 / 1130 / 45
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Ошибка при инициализации - C++
На 3 и 4 строчку показывает отладчик при вылете. BADpixel *enemy; pixel *player; enemy = new BADpixel(75, 10, 10, player); ...

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

Ошибка при инициализации массива - C++
Не понимаю, почему не работает. Массив создается после введения количества его элементов, но все равно компилятор ругается. Код работать...


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

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

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