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

Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) - C++

Восстановить пароль Регистрация
 
chernyatinskiy
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 36
26.09.2013, 03:27     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) #1
Доброго времени суток. Подскажите как обьеденить мой класс с проверкой на его работу, убрать гото(заменить на что-то другое и добавить конструктор копирования.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <cstring>
#include <algorithm>
 
using namespace std;
 
class CStation
{
   private:
   char *_name;
   struct COORD
{
   int x;
   int y;
} 
   _coord;
   public:
   CStation();
   ~CStation();
   void set_name(char *);
   const char *get_name();
   void set_coord(int, int);
   void get_coord(COORD &);
};
   CStation::CStation()
{
   _name = "";
   _coord.x = 0;
   _coord.y = 0;
}
 
   CStation::~CStation()
{
   delete [] _name;
   /*_name = "";
   _coord.x = 0;
   _coord.y = 0;*/
}
 
   void CStation::set_name(char *name)
{
   //_name = name;
    _name = new char [strlen(name)+1];
    strcpy(_name,name);
}
   const char *CStation::get_name(){return _name;}
 
   void CStation::set_coord(int x, int y)
{
   _coord.x = x;
   _coord.y = y;
}
 
   void CStation::get_coord(COORD &coord)
{
   coord.x = _coord.x;
   coord.y = _coord.y;
}
   int main()
{
   int x;// добавить класс. убрать гото, мейн в начало, и добавить конструктор копирования.
   setlocale (LC_ALL, "RUSSIAN");
   cout«"1-Киев"«endl «"2-Лондон"«endl «"3-Львов"«endl «"4-Харьков"«endl «"5-Москва"«endl;
   cout«"Выберете нужный вам город"«endl;
   L1:
   cin»x;
   if (x==1)
   {cout«"Киев : Кординти 33.12"«endl;
   goto L1;} //!!
   else if (x==2)
{
   cout«"Лондон : Кординати 13.22"«endl;
   goto L1;
}
   else if (x==3)
{   
   cout«"Львов : Кординти 34.10 "«endl;
   goto L1;
}
   else if (x==4)
   {
   cout«"Харьков : Кординти 31.9 "«endl;
   goto L1;
}
   else if (x==5)
{
   cout«"Москва : Кординти 21.30 "«endl;
   goto L1;
}
   getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 03:27     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования)
Посмотрите здесь:

Классы, конструктор копирования C++
Класс, конструктор-копирования C++
Классы. конструктор копирования C++
C++ Класс матрица (не работает конструктор копирования)
C++ Классы, конструктор копирования (разбор куска программы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
26.09.2013, 08:58     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CStation st[5];
st[0].setname("Киев ");
st[0].setcoord(33,12);
// и т.д. для всех
int x;
cout«"0 - Выход"<<endl<<"1-Киев"«endl «"2-Лондон"«endl «"3-Львов"«endl «"4-Харьков"«endl «"5-Москва"«endl;
cout«"Выберете нужный вам город"«endl;
_coord coord;
do
{
cin»x;
if((x>0)&&(x<=5))
 {
 st[x].getcoord(&coord);
 cout<<st[x].getname()<<coord.x<<coord.y<<endl;
 }
}
while(x!=0);
chernyatinskiy
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 36
26.09.2013, 18:35  [ТС]     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) #3
_coord coord; // Идентефикатор не определен
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CStation st[5];
st[0].setname("Киев ");
st[0].setcoord(33,12);
// и т.д. для всех
int x;
cout«"0 - Выход"<<endl<<"1-Киев"«endl «"2-Лондон"«endl «"3-Львов"«endl «"4-Харьков"«endl «"5-Москва"«endl;
cout«"Выберете нужный вам город"«endl;
_coord coord; // Идентефикатор не определен
do
{
cin»x;
if((x>0)&&(x<=5))
 {
 st[x].getcoord(&coord);
 cout<<st[x].getname()<<coord.x<<coord.y<<endl;
 }
}
while(x!=0);
AntonChik
1083 / 581 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
27.09.2013, 05:31     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) #4
ну да. поторопился. удалите эту строку. и перепишите:
C++
1
2
3
4
5
void CStation::get_coord(int &x, int &y)
{
   x = _coord.x;
   y = _coord.y;
}
C++
1
2
3
4
int x,y;
//...
st[x].getcoord(&x, &y);
cout<<st[x].getname()<<x<<y<<endl;
а лучше книжки по с++, по классам почитайте
Yandex
Объявления
27.09.2013, 05:31     Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования)
Ответ Создать тему
Опции темы

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