Страница: 1 |
Страница: 1 |
Вопрос: Кто знает С++ досовскую???????
Добавлено: 01.11.05 14:16
Автор вопроса: hak
Подскажите как написать программу, создающую базовый класс NUM. В этом классе должно храниться целое и содержаться виртуальная функция SHOWNUM(). Создайте два производных класса OUTHEX и OUTOCT, которые наследуют NUM. Функция SHOWNUM() должна быть переопределена в производных классах так, чтобы осуществлять вывод на экран значений, соответственно в 16-ричной и 8-ричной системах исчисления.
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #1
Добавлено: 01.11.05 14:33
Люди я знаю что вопрос не по теме но очень нужно HELP!!!
Номер ответа: 2
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #2
Добавлено: 01.11.05 15:17
Старый Борланд можно использовать (у меня где то пылиться). А зачем под Дос - то?
Задача тривильнейшая, ты ее решение +/- практически в любом учебнике по С++ найдешь.
Простой пример наследования. Объяви SHOWNUM() как чисто виртуальную(проще говоря объяви интерфейс-без реализации) и переопределяй.
Номер ответа: 3
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #3
Добавлено: 01.11.05 15:28
а можно по подробнее???
Номер ответа: 4
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #4
Добавлено: 01.11.05 16:31
using namespace std;
//--------------------------------------------------------------------------------
class NUM{
public:
NUM();//конструктор
virtual void SHOWNUM() const =0;// чистая виртуальная функция
int num;// это наше чисдо
};
NUM::NUM()
{
num =5;
}
//---------------------------------------------------------------------------------
class OUTHEX:public NUM
{
public:
OUTHEX();
virtual void SHOWNUM() const;
};
OUTHEX::OUTHEX ()
:NUM ()// вызываем конструктор базового класса
{
}
void OUTHEX::SHOWNUM() const
{
cout<<"HEX: "<<num <<endl;// переопределенная функция
}
//---------------------------------------------------------------------
class OUTOCT: public NUM
{
public:
OUTOCT();
virtual void SHOWNUM() const;
};
OUTOCT::OUTOCT()
:NUM ()
{
}
void OUTOCT::SHOWNUM () const
{
cout <<"OCT: "<<num<<endl;
}
int main()
{
NUM *ptr;// указатель на базовый класс
OUTHEX hnum;
ptr=&hnum;//указатель на базовый класс присваиваем адрес производного
ptr->SHOWNUM ();// выводим HEX(динамическое связывание)
hnum.SHOWNUM ();//статическое связывание
OUTOCT onum;
ptr=&onum;
ptr->SHOWNUM ();//выводим OCT
onum.SHOWNUM ();
// так реализуется полиморфное поведение
return 0;
}
Вот собственно и все, только числа отфоматируй соответственно.
Номер ответа: 5
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #5
Добавлено: 01.11.05 20:52
ну вопервых сдесь ошибка.., а во вторых
этого в интернете, как го**а.
Номер ответа: 6
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #6
Добавлено: 01.11.05 21:16
2 Автор вопроса:
этого в интернете, как го**а.
Номер ответа: 7
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #7
Добавлено: 01.11.05 23:21
«Unknown Lamer»
using namespace std;
Где ошибка?
А во вторых я говорил об этом автору вопроса, но если человек совсем С++ не знает... Мне проще настучать
И не выеживайся?)
Номер ответа: 8
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #8
Добавлено: 02.11.05 06:37
Спасибо,выручил, спас жизнь простому VB программисту!
Номер ответа: 9
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #9
Добавлено: 02.11.05 10:04
... пикец, там действительно ошибка!
"Namespace name expected"
и я не выеживаюсь, кстати смысла нет..
Номер ответа: 10
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #10
Добавлено: 02.11.05 20:28
«Unknown Lamer»
Ты чем компилил-то?)
Номер ответа: 11
Автор ответа:
el-paso
Вопросов: 3
Ответов: 164
Профиль | | #11
Добавлено: 02.11.05 21:16
Это же азы ООП...
#include <iostream.h>
class Num
{
public:
long value;
virtual void showNum() { cout << value; };
};
class HexNum : public Num
{
void showNum() { cout << hex << value; };
};
class OctNum : public Num
{
void showNum() { cout << oct << value; };
};
long main(void)
{
Num *ndec = new Num();
Num *nhex = new HexNum();
Num *noct = new OctNum();
ndec->value = 777;
nhex->value = 777;
noct->value = 777;
ndec->showNum(); cout << endl;
nhex->showNum(); cout << endl;
noct->showNum(); cout << endl;
return 0;
}
Это, наверняка, именно то, что просил от тебя препод.
Номер ответа: 12
Автор ответа:
hak
Вопросов: 5
Ответов: 12
Профиль | | #12
Добавлено: 03.11.05 07:10
Спасибо тебе, так намного круче!!!!
Препод подавится слюнями!
Номер ответа: 13
Автор ответа:
vito
Разработчик Offline Client
Вопросов: 23
Ответов: 879
Web-сайт:
Профиль | | #13
Добавлено: 03.11.05 07:40
Млин ну ребята вы даете...Я просто фигею...
Что так, что эдак вопрос вкуса.
Номер ответа: 14
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #14
Добавлено: 04.11.05 20:01
Unknown Lamer получает заслуженный череп.