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

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

Восстановить пароль Регистрация
 
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
21.11.2013, 22:06     Наследование #1
Написал код, но есть небольшая ошибка. Мне нужно, чтобы с клавиатуры вводилось имя (например 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++
C++ наследование
C++ Наследование?!
C++ наследование
C++ Заменить наследование классов на наследование интерфейсов
наследование C++
Наследование наследование ) C++

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

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

Добавлено через 25 минут
Если не сложно, то будет интересно посмотреть на ваш код(я только начал наследование изучать, 1 день так сказать).
Yandex
Объявления
21.11.2013, 22:38     Наследование
Ответ Создать тему
Опции темы

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