IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Проблемы с ООП в С++., Microsoft Visual C++ .Net
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 30
Пол: Мужской
Реальное имя: Никита

Репутация: -  0  +


 

#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio>

class Tags
{
protected:
char nik[10];
int tel;
public:
Tags(char*,int);
void virtual show();

// здесь надо написать еще один метод для создания объектов класса Tags и размещения их в массиве

int getphone()
{
return tel;
}
};

class XTags:public Tags
{
int telr;
public:
XTags(char*,int,int);
void show();
// тут тоже нужен, вроде, метод
int getphone()
{
return tel;
}
};

Tags::Tags(char* nnik,int ntel)
{
strcpy(nik,nnik);
tel=ntel;
}

XTags::XTags(char* nnik,int ntel,int ntelr):Tags(nnik,ntel)
{
telr=ntelr;
}

void Tags::show()
{
cout<<nik<<" "<<tel<<" ";
}

void XTags::show()
{
Tags::show();
cout<<telr;
}


void main()
{

}




Используются классы Tags(кличка животного и номер владельца) и XTags(Tags + телефон отдела регистрации). Используются три метода - show(это вывод информации на экран содержащейся в массиве), getphone(средство нахождения номера телефона владельца по кличке животного) и еще один метод которого у меня нет - создание объектов класса Tags и размещения их в массиве. Последнее как раз мне и нужно.

Сообщение отредактировано: Bo2nik -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
создание объектов класса Tags
вообще-то задача конструктора. Не совсем понятно, что именно тебе нужно, потому что на тот момент, когда ты сможешь вызвать этот метод, у тебя экземпляр класса уже создан, ты ж из него метод-то вызывать и будешь smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 30
Пол: Мужской
Реальное имя: Никита

Репутация: -  0  +


Цитата(volvo @ 23.04.2008 20:30) *

вообще-то задача конструктора. Не совсем понятно, что именно тебе нужно, потому что на тот момент, когда ты сможешь вызвать этот метод, у тебя экземпляр класса уже создан, ты ж из него метод-то вызывать и будешь smile.gif


Вообщем привожу полностью формулировку задачи.
У нас есть программа для работы со старыми бирками(Tags). Теперь необходимо определить новый класс бирок - XTags, который будет расширять старый класс бирок и содержать новый элемент данных. Оба класса могут быть сохранены в массиве Mas как объекты класса Tags.
В программе для создания объктов используются классы Tags и XTags. makeTags - создание объектов Tags и размещение их в массиве. showTags - выводит на экран информацию, содержащуюся в массивк, а метод checkTags является стредством нахождения номер телефона владельца по кличке животного.

Вот что "накалякал":

#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio>

class Tags
{protected:
char nik[10];
int tel;
public:
Tags(char*,int);
void virtual show();
char* getnik() // тут надо получить кличку собаки
{return nik;}
int getphone() // тут получаем номер телефона владельца
{return tel;}
};

class XTags:public Tags
{int telr;
public:
XTags(char*,int,int);
void show();
char* getnik(){return nik;}
int getphone(){return tel;}
};

Tags::Tags(char* nnik,int ntel)
{
strcpy(nik,nnik);
tel=ntel;
}

XTags::XTags(char* nnik,int ntel,int ntelr):Tags(nnik,ntel)
{
telr=ntelr;
}

void Tags::show()
{
cout<<nik<<" "<<tel<<" ";
}

void XTags::show()
{
Tags::show();
cout<<telr;
}

Tags* mas[100];

void main()
{char n[10],s[10]; int t,tr,k,i=0,m;
FILE *f;
f=fopen("d:\\bb.txt","r");
while (!feof(f))
{
fscanf(f,"%d",&k);
if (k==1) // проверка новая бирка или нет
{
fscanf(f,"%s%d%d",n,&t,&tr);
*(mas+i)=new XTags(n,t,tr);
}
else
{
fscanf(f,"%s%d",n,&t);
*(mas+i)=new Tags(n,t);
}
i++;
}
m=i;
for(i=0;i<m;i++)
{
(*(mas+i))->show();
cout<<"\n";
}
cout << "Enter nik of dog\n";
cin >> s;
for(i=0;i<m;i++)
{
if (!strcmp((*(mas+i))->getnik(),s))
cout << (*(mas+i))->getphone() << "\n";
}
getch();
}




Вопрос: я правильно делаю, исходя из условия задачи? если нет, то укажите где ошибки. mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 12:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name