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

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

Войти
Регистрация
Восстановить пароль
 
pnf
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 4
#1

Именование новых объектов - C++

21.05.2013, 17:46. Просмотров 350. Ответов 6
Метки нет (Все метки)

Доброго времени суток.
Это, вероятно, простой вопрос, но в лабах и учебниках пока ответа на него не встретил.
Допустим, я создаю класс, с неизвестным заранее количеством объектов, и мне нужна возможность, чтобы пользователь в консольном приложении мог добавлять новые объекты.
До сих пор, во всех примерах что я видел, новый объект создается и именуется в коде программы,
ну, то есть примерно так:
C++
1
2
3
object ob1;
object obj2 (obj1);
object obj3 (int i, float j);
Но если мне заранее неизвестно, сколько будет объектов, как сделать, чтобы имя нового объекта было введенным пользователем значением ? Допустим, одно из полей класса - рег.номер, и мне нужно чтобы каждый новый созданный объект был назван соответствующим ему номером.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 17:46     Именование новых объектов
Посмотрите здесь:

В программе реализовать возможность записи объектов в файл и чтения объектов из файла - C++
Добрый день, помогите, пожалуйста! У меня есть программа: #include <iostream> #include <locale.h> using namespace std; class...

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

Посоветуйти IDE из новых - C++
Microsoft Visual C++ 2010 Express хочется не Express и поновее ну и очень желательно на русском?

Откуда узнавать о нововведениях в новых стандартах С++? - C++
Слышал что один чел каждый год развивается в c++ . Это как?Как узнать о нововведениях в новых стандартах С++? я пока только знаю как...

Формирование двух новых списков из исходного - C++
Доброго времени суток. Задание такое: Структура: список однонаправленный. Реализовать функции: - сформировать список; -...

Вычисление новых координат для объекта - C++
Всем здрасьте, молод я по возрасту и не знаю всех формул, нужна помощь в вычислении новых координат. Рисунок приложен. Нужно что бы эта...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
21.05.2013, 17:52     Именование новых объектов #2
Цитата Сообщение от pnf Посмотреть сообщение
Но если мне заранее неизвестно, сколько будет объектов, как сделать, чтобы имя нового объекта было введенным пользователем значением ?
Никак. У Вас же уже скомпилированная программа.
Но можно сделать некоторую обертку, в которой реализовать подобное поведение, точнее эмуляцию такого поведения
pnf
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 4
21.05.2013, 18:10  [ТС]     Именование новых объектов #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Никак. У Вас же уже скомпилированная программа.
Но можно сделать некоторую обертку, в которой реализовать подобное поведение, точнее эмуляцию такого поведения
Не совсем ясно что имеется в ввиду под оберткой.

Поставлю вопрос по другому.
Мне нужно сделать программу, удовлетворяющую таким требованиям:
Кликните здесь для просмотра всего текста

Составить программу, которая содержит текущую информацию о книгах в библиотеке.
Сведения о книгах содержат:
-номер книги;
-фамилию и инициалы автора;
-название;
-год издания;
-количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
-начальное формирование данных о всех книгах в библиотеке в виде списка;
-при взятии каждой книги из библиотеки вводится номер книги, и программа уменьшает значение количества книг на единицу или выдает сообщение о том, что требуемой книги в библиотеке нет, или требуемая книга находится на руках;
-при возвращении каждой книги вводится номер книги, и программа увеличивает значение количества книг на единицу;
-по запросу выдаются сведения о наличии книг в библиотеке.
Специальные требования:
- для каждой операции реализовать отдельную функцию;
- после выполнения каждой операции выводить меню пользователя;
- данные книгах в библеотеке записать в текстовый файл.

Я предположил, что нужно сделать класс book, с полями вроде названия, автора, года выпуска, рег.номера и т.д. , и с соответствующими методами. Но, если при таком подходе, нельзя добавлять новые объекты, то с какой стороны к этому заданию лучше подобраться ?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.05.2013, 18:12     Именование новых объектов #4
pnf, а зачем Вам нужны "имена" для динамически создаваемых объектов? Что Вы сможете сделать с этими "именами"?

Добавлено через 1 минуту
Чтобы хранить множество объектов используйте контейнерные классы. std::vector, std::list, std::map ...
Croessmah
Модератор
Эксперт CЭксперт С++
13045 / 7308 / 814
Регистрация: 27.09.2012
Сообщений: 18,041
Записей в блоге: 3
Завершенные тесты: 1
21.05.2013, 18:19     Именование новых объектов #5
Цитата Сообщение от pnf Посмотреть сообщение
Я предположил, что нужно сделать класс book, с полями вроде названия, автора, года выпуска, рег.номера и т.д.
Так и нужно
Цитата Сообщение от pnf Посмотреть сообщение
Но, если при таком подходе, нельзя добавлять новые объекты, то с какой стороны к этому заданию лучше подобраться ?
Всё можно. Есть же динамически распределяемая память, или можно использовать контейнеры, как уже написал Tulosba, чтобы не возиться с выделением/освобождением памяти
pnf
0 / 0 / 0
Регистрация: 10.05.2013
Сообщений: 4
21.05.2013, 18:26  [ТС]     Именование новых объектов #6
Цитата Сообщение от Tulosba Посмотреть сообщение
pnf, а зачем Вам нужны "имена" для динамически создаваемых объектов? Что Вы сможете сделать с этими "именами"?

Добавлено через 1 минуту
Чтобы хранить множество объектов используйте контейнерные классы. std::vector, std::list, std::map ...
Я как бы немного плаваю в вопросе, ну то есть я знаю как работать с контейнерами, классами, файлами отдельно, но связать все это вместе пробую в первый раз.
Мне непонятно собственно как эти объекты создавать динамически. Как это в виде кода будет выглядеть.
Имена, как я это понимаю ( а я понимаю, что ничего уже не понимаю) мне нужны чтобы потом обращаться к методу конкретного объекта из контейнера. Или это можно делать с помощью итератора? Опять таки, как это выглядит в виде кода ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2013, 18:46     Именование новых объектов
Еще ссылки по теме:

организация списка : удаление и внесение новых элементов - C++
Приветствую! У меня есть односвязный список. Изначально он пустой и я вношу какие то значения, например, 1 , 2 , 3 , все выводится в...

создать функцию, которая создает 2 новых списка - C++
Написать функцию, которая использует исходный список L и создает два новых списка L1 и L2. L1 содержит нечетные числа, а L2 – четные. !...

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

Std::map insert in while - добавление новых элементов в цикле - C++
Задача - обьявить мапу, обьявить цикл и в цикле сначало проверять(если оно есть) содержимое мапы а потом добавлять после добавления...


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.05.2013, 18:46     Именование новых объектов #7
pnf, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <list>
#include <iostream>
 
class book
{
public:
    book( int id ): id(id) {}
    int id;
};
 
int main()
{
    std::list<book> lib; // список книг - библиотека
    int cnt; 
    std::cin >> cnt; // пользователь вводит кол-во книг
 
    for( int i=0; i<cnt; ++i )
    {
        lib.push_back( book( i*10 ) ); // заполняем библиотеку книгами
    }
 
        // выводим содержимое библиотеки
    for( std::list<book>::const_iterator it = lib.begin(); it != lib.end(); ++it )
    {
        std::cout << it->id << std::endl; 
    }
 
    std::system( "pause" );
}
Yandex
Объявления
21.05.2013, 18:46     Именование новых объектов
Ответ Создать тему
Опции темы

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