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

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

Войти
Регистрация
Восстановить пароль
 
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
#1

Реализация динамического создания экземпляров класса. - C++

27.09.2011, 00:25. Просмотров 647. Ответов 4
Метки нет (Все метки)

Добрый вечер.

Есть программа:
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
//HEADER.h
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
class TRAIN
{
private:
    int num_tr;
    float time_tr;
    string city_tr;
 
 
public:
    void SetNum(int num) {num_tr=num;}//Принимает номер поезда.
    int GetNum()const{return num_tr;} //Возвращает номер поезда.
 
    void SetTime(float time) {time_tr=time;}//Принимает время отправления.
    float GetTime()const{return time_tr;} //Возвращает время отправления.
 
    void SetCity(string city) {city_tr=city;}//Принимает пункт назначения.
    string GetCity() const {return city_tr;}//Возвращает пункт назначения.
 
 
};
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
30
31
32
33
34
35
36
//code.cpp
#include "h_train.h"
 
 
int main()
{
setlocale (LC_ALL,"russian");
 
 
TRAIN N1;
 
int a;
float b;
string c;
 
 
cout<<"Введите номер поезда: ";
cin>>a;
cout<<"Введите время прибытия (чч.мм): ";
cin>>b;
cout<<"Укажите пункт назначения: ";
cin>>c;
 
 
N1.SetNum(a);
N1.SetTime(b);
N1.SetCity(c);
 
 
cout<<"Номер поезда:"<<N1.GetNum()<<endl;
cout<<"Время прибытия:"<<N1.GetTime()<<endl;
cout<<"Время прибытия:"<<N1.GetCity()<<endl;
 
_getch();
return 0;
}
Как можно реализовать динамическое создание экземпляров класса? Возможно ли это вообще.
Большая просьба дать информацию как можно подробней.
Заранее всем спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 00:25     Реализация динамического создания экземпляров класса.
Посмотрите здесь:

C++ Полиморфизм, наследование и приведение экземпляров класса одного к другому
C++ Добавление экземпляров одного класса в другой класс
Статическое поле,количество экземпляров класса C++
C++ Указатель на массив экземпляров класса
C++ Хранение вектора экземпляров шаблонного класса неизвестного типа
C++ Перегрузка оператора + для сложения двух экземпляров класса
C++ Инициализация экземпляров класса из файла
C++ Перегрузка operator< для двух экземпляров класса отрезок
Пример создания массива экземпляров другого класса C++
Реализовать операторы сравнения двух экземпляров класса (==, !==) C++
C++ Создание массива экземпляров класса с не стандарным конструктором
C++ ошибка при выводе экземпляров класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 00:57     Реализация динамического создания экземпляров класса. #2
C++
1
TRAIN *trainPtr = new TRAIN;
Это ?
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
27.09.2011, 01:05  [ТС]     Реализация динамического создания экземпляров класса. #3
Я правильно понимаю, это ты создал указатель на класс.

Я говорил о том, что, к примеру, спрашивается у пользователя сколько вы хотите задать поездов( с этим проблем нет). Он указывает, пусть будет 3. и программа автоматом создает 3 экземпляра класса. С именами, пусть будет N1, N2, N3.
Так вот не могу понять как реализовать это создание экземпляров класса.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
27.09.2011, 01:16     Реализация динамического создания экземпляров класса. #4
Цитата Сообщение от hoot Посмотреть сообщение
Я правильно понимаю, это ты создал указатель на класс.
Нет, не правильно. Я выделил память для одного экземпляра и адрес, которая вернула операция new, поместил в указатель trainPtr, чтобы можно было работать с этим экземпляром.

Цитата Сообщение от hoot Посмотреть сообщение
Я говорил о том, что, к примеру, спрашивается у пользователя сколько вы хотите задать поездов( с этим проблем нет). Он указывает, пусть будет 3. и программа автоматом создает 3 экземпляра класса. С именами, пусть будет N1, N2, N3.
Так вот не могу понять как реализовать это создание экземпляров класса.
C++
1
2
3
4
int n;
cout << "Введите кол-во поездов ";
cin >> n;
TRAIN *trainPtr = new TRAIN[n];
В этом случае выделяется память для массива из n элементов и адрес на этот массив присваивается указателю trainPtr.

Только не забудьте в конце программы освобождать выделенную память. Для одного экземпляра - это
C++
1
delete trainPtr;
Для массива экземпляров - это
C++
1
delete [] trainPtr;
Добавлено через 1 минуту
Надеюсь как обращаться с указателями вы знаете.
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
27.09.2011, 11:03  [ТС]     Реализация динамического создания экземпляров класса. #5
Спасибо!
Знаю.
Yandex
Объявления
27.09.2011, 11:03     Реализация динамического создания экземпляров класса.
Ответ Создать тему
Опции темы

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