Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
1

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

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

Author24 — интернет-сервис помощи студентам
Ребят есть задание:

В класс строки (пользовательский класс ) добавить статическую защищенную (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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2011, 20:20
Ответы с готовыми решениями:

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

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

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

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

4
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
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
186 / 186 / 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
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
15.12.2011, 21:04  [ТС] 4
А чем это переменная такая особенная?Что для неё надо писать,скажем, отдельный конструктор?
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
15.12.2011, 21:14 5
Она статическая. Одна на все инстансы вашего класса. Поэтому она должна быть проинициализирована один раз глобально, а не каждый раз в конструкторе вашего класса, как можно было бы подумать.
1
15.12.2011, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2011, 21:14
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru