Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71

Работа с классами

13.05.2011, 22:16. Показов 2807. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите,

создал класс

Code
1
2
3
4
5
6
7
8
9
10
11
class Person
{
private:
... 
public:
    static int count;
    void set()
    {
        count++;
    }
};
вопрос: как в процедуре tmain мне взять (обратиться) переменную count ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2011, 22:16
Ответы с готовыми решениями:

Работа с классами
Наверно классическая задачка для тех, кто только начинает изучать классы. Есть группы и студенты. Проблема в том, что до меня не доходит,...

Работа с классами
Привет!!! Есть задачка: "Определите класс Oper, содержащий идентификатор типа ld (string или C-строка) и операцию (указатель на...

Работа с классами
Почему может вывестись здесь ошибка? #include <iostream> #include <stdlib.h> #include <time.h> #include <math.h> #include...

34
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 22:17
Person::count.
0
64 / 64 / 12
Регистрация: 05.07.2010
Сообщений: 219
13.05.2011, 22:18
C++
1
Person.count;//кажись
0
Эксперт С++
516 / 421 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
13.05.2011, 22:22
Цитата Сообщение от Ma3a Посмотреть сообщение
Person::count.
Кроме того, не забыть ее определить еще.
C++
1
int Person::count = 0;
0
Эксперт С++
623 / 467 / 57
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 22:23
gooseim, присваивание нуля -- лишнее, ведь все static переменные по-умолчанию будут инициализированы нулевым значением.
1
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 22:30  [ТС]
Цитата Сообщение от gooseim Посмотреть сообщение
C++
1
int Person::count = 0;
[BCC32 Error] File1.cpp(87): E2089 Identifier 'count' cannot have a type qualifier
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 22:40  [ТС]
вот программка
Вложения
Тип файла: rar Lab5 защита.rar (4.08 Мб, 25 просмотров)
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
13.05.2011, 23:40
Цитата Сообщение от fen1ksss Посмотреть сообщение
[BCC32 Error] File1.cpp(87): E2089 Identifier 'count' cannot have a type qualifier
В теле класса его надо определить.

C++
1
2
3
4
struct a
{
    static int b = 10;
}
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 23:57  [ТС]
Что есть b ? моя переменная count должна быть описана именно в public, а использована именно в мэйне
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
13.05.2011, 23:59
Цитата Сообщение от fen1ksss Посмотреть сообщение
это же счетчик, зачем его определять как 10? тем более это статик
Это просто пример, к вопросу об инициализации.
Для обращения к нему нужно использовать оператор ::
C++
1
Person::count = 10;
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 00:22  [ТС]
Цитата Сообщение от Jtalk Посмотреть сообщение
Это просто пример, к вопросу об инициализации.
Для обращения к нему нужно использовать оператор ::
C++
1
Person::count = 10;
[ILINK32 Error] Error: Unresolved external 'Person::count' referenced from ...\DEBUG\FILE1.OBJ

вот такая ошибка

это если вместо count в мэйне я пишу Person::count
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 00:37
Цитата Сообщение от fen1ksss Посмотреть сообщение
[ILINK32 Error] Error: Unresolved external 'Person::count' referenced from ...\DEBUG\FILE1.OBJ

вот такая ошибка

это если вместо count в мэйне я пишу Person::count
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct a
{
    static int b;
}
 
a::b = 10;
 
int 
main()
{
    std::cout<< a::b <<std::endl;
}
Так понятнее?
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 00:51  [ТС]
Цитата Сообщение от Jtalk Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct a
{
    static int b;
}
 
a::b = 10;
 
int 
main()
{
    std::cout<< a::b <<std::endl;
}
Так понятнее?
я так и пишу, у меня

Code
1
2
3
4
5
6
7
8
9
10
11
12
class Person
{
public:
    static int count;
    ...
};
 
int _tmain(int argc, _TCHAR* argv[])
 
Person::count=0;
 
и потом использую как Person::count
и именно такая ошибка
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 00:55
Цитата Сообщение от fen1ksss Посмотреть сообщение
и именно такая ошибка
Мой косяк - слегка залипаю.
Надо так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct a
{
    static int b;
}
 
int a::b = 10;
 
int 
main()
{
    std::cout<< a::b <<std::endl;
}
Обратите внимание на строку между структурой и объявлением main.
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 11:49  [ТС]
Цитата Сообщение от Jtalk Посмотреть сообщение
Мой косяк - слегка залипаю.
Надо так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct a
{
    static int b;
}
 
int a::b = 10;
 
int 
main()
{
    std::cout<< a::b <<std::endl;
}
Обратите внимание на строку между структурой и объявлением main.
если записываю между классом и мэйном
Code
1
int Person::count=0;
, а потом использую Person::count для обращению к count, программа компилируется, только при 1 вводе выводит абракадабру, а при последующих, все как и должно быть, я так понимаю что то еще нужно описать
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 11:52
Цитата Сообщение от fen1ksss Посмотреть сообщение
если записываю между классом и мэйном
Code
1
int Person::count=0;
, а потом использую Person::count для обращению к count, программа компилируется, только при 1 вводе выводит абракадабру, а при последующих, все как и должно быть, я так понимаю что то еще нужно описать
Покажите этот исправленный код - у меня вышеприведенный пример работает (GCC).
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 11:52  [ТС]
вот что получается
Вложения
Тип файла: rar Lab5 защита.rar (4.11 Мб, 9 просмотров)
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 12:37
Цитата Сообщение от fen1ksss Посмотреть сообщение
вот что получается
C++
1
for (int i=1; i<=Person::count; i++)
Почему вы считаете с единицы? Person::count будет инициализирован нулем, и ни одной итерации цикла не будет.
0
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 13:00  [ТС]
Цитата Сообщение от Jtalk Посмотреть сообщение
C++
1
for (int i=1; i<=Person::count; i++)
Почему вы считаете с единицы? Person::count будет инициализирован нулем, и ни одной итерации цикла не будет.
если int Person::count=1; то по идее должен быть 1 проход цикла
C++
1
for (int i=1; i<=Person::count; i++)
, а он выводит 1 абракадабру, а 2 верный
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 13:07
Цитата Сообщение от fen1ksss Посмотреть сообщение
если int Person::count=1; то по идее должен быть 1 проход цикла
C++
1
for (int i=1; i<=Person::count; i++)
, а он выводит 1 абракадабру, а 2 верный
Я не нашел в вашем файле ни одной строчке, где Person::count присваивалось бы значение.
Какой пункт конкретно выбираете при выводе "абракадабры" и верного? Там много всего, лень весь switch перебирать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2011, 13:07
Помогаю со студенческими работами здесь

работа с классами
прошу помощи с лабой, вообще вкурить немогу что и как делать:\ Комплексное число, задаваемое своей вещественной и мнимой...

Работа с классами
Класс соревнование. В каждом соревновании по три участника и произвольное число туров. После проведения туров объявляется победитель. ...

Работа с классами
Не знаю как правильно задать вопрос, поэтому приведу пример. У меня есть класс матрица как лучше реализовать операцию сложения матриц? Я...

Работа с классами
Помогите решить задачу с использованием классов Дан текст. необходимо удвоить каждый символ в этом тексте, включая пробелы.

Работа с классами
Здравствуйте. Есть код, компиляция происходит нормально, Dev-C++ не выдаёт никаких ошибок. Но когда запускаю программу и начиная там...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru