Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2013, 20:35   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию Наследование

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

Код:
#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; }
Alexandr- вне форума Ответить с цитированием
Старый 21.11.2013, 21:28   #2
nidaime
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 26
По умолчанию

а у вас именно задание такое? создать базовый класс Benzakolonk и три класса наследника-города ? если нет, то может не создавать три класса наследника (а если городов будет 10?), а лучше создать класс City например и в нем массив имен городов и массив бензоколонок, по моему так будет удобнее.
nidaime вне форума Ответить с цитированием
Старый 21.11.2013, 21:42   #3
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию

Да задание такое, чтобы немного понять, как работать с наследованием. В одном классе если все написать, проблем бы не возникло, а вот если их больше то, как записать не знаю...
Alexandr- вне форума Ответить с цитированием
Старый 21.11.2013, 22:30   #4
nidaime
Пользователь
 
Регистрация: 28.11.2011
Сообщений: 26
По умолчанию

я конечно не спец, я новичок, но по моему в вашем примере сделать то что вы хотите нельзя, разве что так, в тупую

Код:
cout<<"vvedite imya klienta"<<endl;
cin >> s;	
if(s == dss.get_name())
	dss.condition();
if(s == cs.get_name())
	cs.condition();
if(s == angl.get_name())
	angl.condition();
Где get_name() - функция класса Benzakolonka

Код:
string get_name(){
		return name;
	}
и

Код:
void Benzakolonka::condition() { 
		 cout<<name<<" "<<kod<<" "<<data<<" "<<time<<" "<<kolvo<<endl;
}
nidaime вне форума Ответить с цитированием
Старый 21.11.2013, 22:54   #5
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию

Спасибо за помощь.
Alexandr- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование(С++) Igogo Помощь студентам 5 20.01.2012 20:07
c++ наследование world12_tk Помощь студентам 1 05.01.2012 03:14
Наследование. ISV-777 Общие вопросы по Java, Java SE, Kotlin 1 05.12.2011 22:31
Наследование С++ Vasyl'eva Помощь студентам 0 04.12.2011 19:40