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

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

Войти
Регистрация
Восстановить пароль
 
hoot
101 / 22 / 5
Регистрация: 10.11.2010
Сообщений: 208
#1

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

27.09.2011, 00:25. Просмотров 790. Ответов 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;
}
Как можно реализовать динамическое создание экземпляров класса? Возможно ли это вообще.
Большая просьба дать информацию как можно подробней.
Заранее всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 00:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Реализация динамического создания экземпляров класса. (C++):

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

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

Массив экземпляров класса - C++
Доброго времени суток уважаемые форумчане. Возник вопрос: как заполнять массив экземплярами класса для CELL (дабы потом иметь возможность...

Указатель на массив экземпляров класса - C++
Пытаюсь разобраться с указателями, но видимо что-то совсем плохо понимаю: class bull {int x;}; bull n; bull *pN; pN=&amp;n; //...

Инициализация экземпляров класса из файла - C++
Люди добрые, подскажите как написать метод класса для инициализации объектов из файла: Apt.h ///...

Вызов динамического метода класса по указателю на объект класса - C++
Как это можно сделать? И хотелось бы как можно проще.

4
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,139
27.09.2011, 00:57 #2
C++
1
TRAIN *trainPtr = new TRAIN;
Это ?
0
hoot
101 / 22 / 5
Регистрация: 10.11.2010
Сообщений: 208
27.09.2011, 01:05  [ТС] #3
Я правильно понимаю, это ты создал указатель на класс.

Я говорил о том, что, к примеру, спрашивается у пользователя сколько вы хотите задать поездов( с этим проблем нет). Он указывает, пусть будет 3. и программа автоматом создает 3 экземпляра класса. С именами, пусть будет N1, N2, N3.
Так вот не могу понять как реализовать это создание экземпляров класса.
0
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,139
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 минуту
Надеюсь как обращаться с указателями вы знаете.
1
hoot
101 / 22 / 5
Регистрация: 10.11.2010
Сообщений: 208
27.09.2011, 11:03  [ТС] #5
Спасибо!
Знаю.
0
27.09.2011, 11:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 11:03
Привет! Вот еще темы с ответами:

ошибка при выводе экземпляров класса - C++
написал класс, но при работе функции принт оно выдает что не может считать память, хотя явных ошибок нет, посмотрите что не так. ...

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

Добавление экземпляров одного класса в другой класс - C++
Доброе утро! В программе создано 2 класса. 1-й предназначен для создания объекта под названием &quot;студент&quot;. Он имеет различные свойства (фио,...

Реализовать операторы сравнения двух экземпляров класса (==, !==) - C++
Приведите пример такой перегрузки, пожалуйста


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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