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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Jleloush
1 / 1 / 1
Регистрация: 16.01.2010
Сообщений: 26
#1

номер объекта - C++

24.07.2011, 17:27. Просмотров 1312. Ответов 19
Метки нет (Все метки)

Недавно начал изучать классы , и возник такой вопрос:
Как создать класс с двумя полями, где одно поле хранит порядковый номер, а второе общее кол-во объектов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2011, 17:27     номер объекта
Посмотрите здесь:

Создать класс, одно из полей которого хранит порядковый номер объекта - C++
Создайте класс, одно из полей которого хранит "порядковый номер" объекта, то есть для первого созданного объхекта значение этого поля равно...

Дан номер года, определить соответствующий ему номер столетия - C++
Дан номер некоторого года(целое положительное число). Определить соответствующий ему номер столетия, учитывая, что, к примеру, началом 20...

Выяснить номер квартала и номер полугодия по введенному номеру месяца - C++
Вводится число k - номер месяца. Выяснить номер квартала и номер полугодия по введенному номеру месяца. Предвидеть ситуацию неправильного...

При выводе массива выводить номер строки и номер столбца - C++
Помогите реализовать вывод номера строки и столбца массива, у меня рандом пропадает, когда я пытался реализовать вывод номера строки или...

Необходимо найти номер строки и номер столбца, в которых находится наименьший элемент. - C++
Массив размерностью MxN. Необходимо найти номер строки и номер столбца, в которых находится наименьший элемент. Во всех вариантах...

Найти номер строки и номер столбца матрицы, в которых находятся максимальный элемент - C++
задание 4 Задан двухмерный массив чисел. Элементы матрицы вводятся с клавиатуры. найти номер строки и номер столбца, в которых...

Матрица двузначных чисел: первая цифра указывает на номер строки, а вторая – на номер столбца - C++
Заполнить массив N x M двузначными числами так, чтобы первая цифра указывала номер строки, а вторая – номер столбца. КАК ПРОПИСАТЬ НЕ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bers
Заблокирован
24.07.2011, 17:35     номер объекта #2
Учитесь задавать вопросы корректно.

Вам нужно, что бы каждый вновь родившийся объект имел свой уникальный номер, и знал количество уже родившихся объектов?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.07.2011, 17:39     номер объекта #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A{
public:
  A(){++num; ++count;}
  ~A() {--count;}
private:
  static unsigned num;
  static unsigned count;
};
 
unsigned A::num = 0;
unsigned A::count = 0;
 
int main()
{
  A a;
}
Jleloush
1 / 1 / 1
Регистрация: 16.01.2010
Сообщений: 26
24.07.2011, 17:40  [ТС]     номер объекта #4
при выводе объекта писался его личный номер.
Bers
Заблокирован
24.07.2011, 17:43     номер объекта #5
Алекс, порядковый номер для объекта уникален (или нафига вообще может быть нужен?)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A{
public:
  A() { ++count;  num=count; }
  ~A() {--count;}
private:
  unsigned int num;
  static unsigned int count;
};
 
unsigned A::count = 0;
 
int main()
{
  A a;
}
Конечно, здесь номера могут повторяться у разных объектов.

Но поскольку автор сам не в состоянии точно выразить, чего ему надо, сойдёт и так.

Умный сразу глянет в сторону статиков. Глупому расжовывать не хочется.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
24.07.2011, 17:47     номер объекта #6
alex_x_x, а как же

Цитата Сообщение от Jleloush Посмотреть сообщение
где одно поле хранит порядковый номер
?
Тогда уж так:
C++
1
2
3
4
5
6
7
8
9
class A{
public:
  A(){++count;num=count; }
  ~A() {--count;}
private:
  unsigned num;
  static unsigned count;
};
unsigned A::count = 0;
Добавлено через 35 секунд

Не по теме:

ну вот, опять...



Добавлено через 2 минуты
Цитата Сообщение от Jleloush Посмотреть сообщение
при выводе объекта писался его личный номер.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A{
public:
  A(){++count;num=count; }
  ~A() {--count;}
  friend std::ostream& operator<<(std::ostream& os, A ob){
           return os<<ob.num;
  }
private:
  unsigned num;
  static unsigned count;
};
unsigned A::count = 0;
 
int main()
{
  A a;
  std::cout<<a<<std::endl;
}
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.07.2011, 17:51     номер объекта #7
Цитата Сообщение от Bers Посмотреть сообщение
num=count;
гениально, и при уничтожении объекта вскоре опять появится объект с таким же номером, или это уже какая-то другая уникальность?
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
24.07.2011, 17:52     номер объекта #8
Kastaneda, а если мы удалим предпоследний элемент и создадим новый, то его номер совпадет с последним)

я бы организовал стек свободных номеров и к нему прикрутил бы счетчик элементов. вроде так будет элегантнее, хотя и вне класса объектов.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.07.2011, 17:52     номер объекта #9
Цитата Сообщение от Kastaneda Посмотреть сообщение
где одно поле хранит порядковый номер
это и будет порядковый номер в самом прямом смысле
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
24.07.2011, 17:58     номер объекта #10
Цитата Сообщение от Paporotnik Посмотреть сообщение
Kastaneda, а если мы удалим предпоследний элемент и создадим новый, то его номер совпадет с последним)
Ну да, тут не подумал)

Цитата Сообщение от alex_x_x Посмотреть сообщение
это и будет порядковый номер в самом прямом смысле
Да, но если мы имеем 10 объектов, и второй захочет получить свой порядковый номер, то он получит 10, а не 2.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.07.2011, 17:59     номер объекта #11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Да, но если мы имеем 10 объектов, и второй захочет получить свой порядковый номер
я не понимаю такого языка О_о
пример пожалуйста
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,250
Записей в блоге: 1
Завершенные тесты: 1
24.07.2011, 18:05     номер объекта #12
Цитата Сообщение от alex_x_x Посмотреть сообщение
пример пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A{
public:
  A(){++num; ++count;}
  ~A() {--count;}
  unsigned get_num(){return num;}
private:
  static unsigned num;
  static unsigned count;
};
 
unsigned A::num = 0;
unsigned A::count = 0;
 
int main()
{
  A arr[10];
  for(int i=0;i<10;i++)
      std::cout<<"Hello, i am arr["<<i<<"], my number is: "<<arr[i].get_num()<<std::endl;
}
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
24.07.2011, 18:07     номер объекта #13
alex_x_x, а зачем делать порядковый номер static, ведь он же уникальный для каждого обьекта...
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.07.2011, 18:08     номер объекта #14
а бже, ну да, нужно отдельную переменную заводить

Добавлено через 33 секунды
Net_Wanderer, чтобы выбирать следующий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2011, 18:12     номер объекта
Еще ссылки по теме:

Определить номер строки и номер столбца матрицы, на пересечении которых находятся требуемые элементы - C++
В двумерном массиве определить номер строки и номер столбца, на пересечении которых находятся требуемые элементы массива: 1) Последний...

Выделить из IP адреса номер сети и номер узла - C++
Здравствуйте. Помогите с задачей Получить в качестве аргумента IP адрес и маску. Выделить из IP адреса номер сети и номер узла....

Дана матрица размера MxN. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также - C++
Дана матрица размера MxN. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.

Вводится номер семестра N <= 10. Вывести фразу «Я проучился N семестров », согласовав слово« семестр »с числом N. Определить номер курса - C++
начало кода есть , но он не показывает что нужно , там надо наверное через if-else !! но не получается:ireful: #include &lt;stdio.h&gt; ...

Написать программу,которая запрашивает у пользователя фамилию,дату рождения,номер группы,номер телефона и записывает их в данные - C++
Написать программу,которая запрашивает у пользователя фамилию,дату рождения,номер группы,номер телефона и записывает их в данные. По...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6552 / 5018 / 463
Регистрация: 14.02.2011
Сообщений: 16,741
24.07.2011, 18:12     номер объекта #15
Цитата Сообщение от Jleloush Посмотреть сообщение
где одно поле хранит порядковый номер, а второе общее кол-во объектов.
Я не понял на хрена это нужно
но по моему это обыкновенный динамический массив
Yandex
Объявления
24.07.2011, 18:12     номер объекта
Ответ Создать тему
Опции темы

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