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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
#1

Работа с классами - C++

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

Подскажите,

создал класс

Код
class Person
{
private:
...	
public:
	static int count;
	void set()
	{
		count++;
	}
};
вопрос: как в процедуре tmain мне взять (обратиться) переменную count ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с классами (C++):

Работа С Классами - C++
Привет Всем , Перехожу С делфи ))) Вот никак не пойму Вот Эту хрень в нутри класса Обрывок из струпа ...

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

работа с классами в С++ - C++
Пусть есть class.срр, в котором описан класс MyClass{ public: int i; ... } Есть файл main.cpp, в нем я использую...

Работа с классами в С++ - C++
Доброго всем дня.У меня возникла проблема с освоением языка C++ , сейчас пишу курсовую на этом языке, и ещё не совсем всё понимаю, но книги...

Работа с классами - C++
Составить описание объектного типа TMatr, что обеспечивает размещение матрицы произвольного размера с возможностью изменения числа строк и...

работа с классами - C++
помогите пожалуйста написать программу на C++: Создать класс Complex для работы с комплексными числами,который должен содержать два...

34
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 22:17 #2
Person::count.
0
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
13.05.2011, 22:18 #3
C++
1
Person.count;//кажись
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 22:22 #4
Цитата Сообщение от Ma3a Посмотреть сообщение
Person::count.
Кроме того, не забыть ее определить еще.
C++
1
int Person::count = 0;
0
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
13.05.2011, 22:23 #5
gooseim, присваивание нуля -- лишнее, ведь все static переменные по-умолчанию будут инициализированы нулевым значением.
1
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 22:30  [ТС] #6
Цитата Сообщение от gooseim Посмотреть сообщение
C++
1
int Person::count = 0;
[BCC32 Error] File1.cpp(87): E2089 Identifier 'count' cannot have a type qualifier
0
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 22:40  [ТС] #7
вот программка
0
Вложения
Тип файла: rar Lab5 защита.rar (4.08 Мб, 23 просмотров)
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
13.05.2011, 23:40 #8
Цитата Сообщение от 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
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
13.05.2011, 23:57  [ТС] #9
Что есть b ? моя переменная count должна быть описана именно в public, а использована именно в мэйне
0
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
13.05.2011, 23:59 #10
Цитата Сообщение от fen1ksss Посмотреть сообщение
это же счетчик, зачем его определять как 10? тем более это статик
Это просто пример, к вопросу об инициализации.
Для обращения к нему нужно использовать оператор ::
C++
1
Person::count = 10;
0
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 00:22  [ТС] #11
Цитата Сообщение от Jtalk Посмотреть сообщение
Это просто пример, к вопросу об инициализации.
Для обращения к нему нужно использовать оператор ::
C++
1
Person::count = 10;
[ILINK32 Error] Error: Unresolved external 'Person::count' referenced from ...\DEBUG\FILE1.OBJ

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

это если вместо count в мэйне я пишу Person::count
0
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 00:37 #12
Цитата Сообщение от 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
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 00:51  [ТС] #13
Цитата Сообщение от 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;
}
Так понятнее?
я так и пишу, у меня

Код
class Person
{
public:
	static int count;
	...
};

int _tmain(int argc, _TCHAR* argv[])

Person::count=0;

и потом использую как Person::count
и именно такая ошибка
0
Jtalk
93 / 79 / 4
Регистрация: 13.05.2011
Сообщений: 279
14.05.2011, 00:55 #14
Цитата Сообщение от 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
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
14.05.2011, 11:49  [ТС] #15
Цитата Сообщение от 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.
если записываю между классом и мэйном
Код
int Person::count=0;
, а потом использую Person::count для обращению к count, программа компилируется, только при 1 вводе выводит абракадабру, а при последующих, все как и должно быть, я так понимаю что то еще нужно описать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2011, 11:49
Привет! Вот еще темы с ответами:

Работа с классами - C++
Здравствуйте, я здесь первый раз, если что извините, за неккоректность, ввода или задания вопроса Я написал (например): class Figure...

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

Работа с классами - C++
Здравствуйте! Вот у меня есть класс Team team.h#pragma once #include &lt;string&gt; using namespace std; class Team{ public: ...

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
14.05.2011, 11:49
Ответ Создать тему
Опции темы

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