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

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

Войти
Регистрация
Восстановить пароль
 
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
#1

Наследование - C++

21.11.2013, 22:06. Просмотров 270. Ответов 2
Метки нет (Все метки)

Написал код, но есть небольшая ошибка. Мне нужно, чтобы с клавиатуры вводилось имя (например James) и он сразу выводил по нему всю информацию. Условие в функции я написал(функция condition), но сейчас в коде у меня 3 раза просит ввести имя на каждый класс, т.е если я первый раз введу James, то он ничего не выведит т.к он работает только с Alexandrom, а только потом работает только с James. Я знаю почему он именно так работает(не стал удалять), но не знаю, как сделать правильно... Помогите исправить код(думаю ошибка не такая глобальная).

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
#include <iostream>
#include <string>
using namespace std;
class Benzakolonka {
    string name;
    int kod;
    int data;
    int time;
    int kolvo;
public:
    Benzakolonka(string p,int x,int y, int z, int w) {
        name=p;kod=x;data=y;time=z;kolvo=w;};
void show();
void condition();
    
};
 
void Benzakolonka::show() {
cout<<"name: "<<name<<endl<<"kod: "<<kod<<endl<<"data: "<<data<<endl<<"time: "<<time<<endl<<"kolichestvo topliva: "<<kolvo<<endl;
}
 
 
void Benzakolonka::condition() { string nm;
cout<<"vvedite imya klienta"<<endl;
cin>>nm;
        if (nm==name) cout<<name<<" "<<kod<<" "<<data<<" "<<time<<" "<<kolvo<<endl;
}
 
class Moskva : public Benzakolonka {
 
public:
    Moskva(string p,int x,int y, int z, int w):Benzakolonka(p,x,y,z,w){};
 
};
 
class Tomsk : public Benzakolonka {
 
public:
    Tomsk(string p,int x,int y, int z, int w):Benzakolonka(p,x,y,z,w){};
 
};
 
class London : public Benzakolonka {
 
public:
    London(string p,int x,int y, int z, int w):Benzakolonka(p,x,y,z,w){};
 
};
 
 
int main () {
    cout<<"ZAPRAVKA MOSKVI:"<<endl;
Moskva dss("Alexandr",3256,21,24,3); dss.show();
cout<<endl<<"ZAPRAVKA TOMSKA:"<<endl;
Tomsk cs("James",72305,22,25,4); cs.show();
cout<<endl<<"ZAPRAVKA LONDONA:"<<endl;
London angl("Shepard",725,27,28,5); angl.show();    
 
cout<<endl;
dss.condition();
cs.condition();
angl.condition();
 
system("pause"); return 0; }
Добавлено через 1 час 37 минут
Неужели никто не может помочь с данной проблемой? (
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
char* Texts :: SetBit() { char a; int b; cout &lt;&lt; &quot;Получаем битовую строку&quot; &lt;&lt; endl; cin &gt;&gt; a; b = strlen(a);...

наследование - C++
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char num; // Имя переменной char st;...

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

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

Наследование?! - C++
привет всем. Есть класс Circle c1, c2, c3 Нужно реализовать через наследование класс множество, прошу помочь как он будет выглядеть...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
uhx
59 / 59 / 6
Регистрация: 11.07.2013
Сообщений: 304
21.11.2013, 22:11 #2
А не проще сделать просто массив и по нему делать проверку?\
Код у тебя какой-то стремный... даже я проще бы написал...
Вместо тысячи функций, можно заменить одним массивом и просто через цикл чекать. Если надо - я могу попробовать переписать твой код по-моему и скинуть. Самому интересно попрактиковаться.
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
21.11.2013, 22:38  [ТС] #3
Проще, но тут нужно сделать в соответствии с заданием. (как бы научиться работать с наследованием)

Добавлено через 25 минут
Если не сложно, то будет интересно посмотреть на ваш код(я только начал наследование изучать, 1 день так сказать).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 22:38
Привет! Вот еще темы с ответами:

наследование - C++
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

наследование в С++ - C++
Добрый вечер. относительно недавно мною была получена задача, а точнее несколько задач в одной...И как это ни печально звучит, проблемы...

наследование - C++
помогите пожалуйсто дописать класс многоугольников , и рисовать на монитор с помощью mfc , заранее благодарен... class figure{ public: ...

Наследование в C++ - C++
Прошу помощи, ибо С++ не моё, а лабораторные работы девушке сдавать надо: Создать 1 базовый класс и несколько производных. Все...


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

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

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