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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 09:51   #1
Sanu0074
 
Аватар для Sanu0074
 
Регистрация: 31.05.2010
Сообщений: 7
Вопрос C++ наследование классов. очень простая ошибка, немогу разобраться в выводе при одинаковых массивах

вобщем задание такое: создать класс Человек с полями(ФИО, адрес),
на его основе создать класс абонент с полем(телефон)
и функцией выдачи на экран номеров телефона абонентов
отчества которых назначены с клавиатуры. всё работает, а функция выдачи неработает,
там наверно ошибка if(soname==p), посмотрите код, оч нужна ваша помощь, зарание спс!

Код:
#include <iostream>
#include <windows.h>
using namespace std;

class man
{
public:
	char name[128];
	char fam[128];
	char soname[128];
	char adres[255];


	man()
	{
	cout<<endl<<"Вызван конструктор по умолчанию"<<endl;
	}


	man(char nam[128],char famil[128],char sonam[128],char addr[255])
	{
	cout<<endl<<"Вызван конструктор"<<endl;
	name[128]=nam[128];
	fam[128]=famil[128];
	soname[128]=sonam[128];
	adres[255]=addr[255];
	}

	void zap_spisok()
	{
	cout<<endl<<"Введите имя: ";
	cin>>name;
	cout<<endl<<"Введите фамилию: ";
	cin>>fam;
	cout<<endl<<"Введите отчество: ";
	cin>>soname;
	cout<<endl<<"Введите адрес: ";
	cin>>adres;
	}


	void vivod_spiska()
	{	
	cout<<endl<<"Имя: ";
	cout<<name;
	cout<<endl<<"Фамилия: ";
	cout<<fam;
	cout<<endl<<"Отчество: ";
	cout<<soname;
	cout<<endl<<"Адрес: ";
	cout<<adres;
	}

};

class abon : public man
{
public:

	int phone;

	abon()
	{
	cout<<endl<<"Вызван конструктор по умолчанию"<<endl;
	}

	abon(int pho) : man(name, fam, soname, adres)
	{
	cout<<endl<<"Вызван конструктор"<<endl;
	phone=pho;
	}

	void vvod_telef()
	{
		zap_spisok();
		cout<<endl<<"Введите телефон: ";
		cin>>phone;
		cout<<endl;
	}

	void vivod_telef()
	{
		vivod_spiska();
		cout<<endl<<"№ Телефона: ";
		cout<<phone;
	}

	void sort_spisok()
	{
	
	char p[128];

	cout<<endl<<"Введите отчество абонентов, номера телефонов"<<endl;
	cout<<" которых необходимо выдать на экран: "<<endl;
	
	cin>>p;

	if(soname==p)
	{
		cout<<phone;
	}
	}

};

void main()
{
	SetConsoleOutputCP(1251);

	abon x;

	abon man1(0);
	man1.vvod_telef();
	
	abon man2(0);
	man2.vvod_telef();

	abon man3(0);
	man3.vvod_telef();

	abon man4(0);
	man4.vvod_telef();

	abon man5(0);
	man5.vvod_telef();
	

	x.sort_spisok();

}

Последний раз редактировалось Stilet; 02.06.2010 в 10:01.
Sanu0074 вне форума Ответить с цитированием
Старый 02.06.2010, 10:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы на твоем месте работал с классами так:
Код:
	abon* m=new abon();
	m->vvod_telef();
	m->vivod_spiska();

	abon* m2=new abon();
	m2->vvod_telef();
	m2->vivod_spiska();

	x.sort_spisok();
Ато это abon man5(0); меня демотивирует.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование классов Serjuk Общие вопросы C/C++ 9 11.04.2010 16:25
Ошибка при выводе инфо из БД Xeon332 PHP 4 30.12.2009 05:41
наследование классов Dimarik Общие вопросы C/C++ 15 02.07.2009 20:00