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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.01.2008, 02:39   #1
Voucik
 
Регистрация: 21.01.2008
Сообщений: 6
По умолчанию Классы

Привет всем, у меня вот такое задание по Си
Создать абстрактный класс CVehicle. На его основе реализовать классы CPlane, ССаr и CShip. Классы должны иметь возможность задавать и получать коорди¬наты, параметры средств передвижения (цена, скорость, год выпуска). Для само¬лета должна быть определена высота, для самолета и корабля – количество пас¬сажиров. Для корабля – порт приписки. Написать программу, создающую список объектов этих классов в динамической памяти. Программа должна содержать меню, позволяющее осуществить провер¬ку всех методов классов.

Но я не знаю что такое (абстрактный класс) и с чем его едят, в инете искал и не чё толком не нашол. Помогите пожалуйста кто чем может.
Voucik вне форума
Старый 22.01.2008, 10:37   #2
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
По умолчанию

Абстрактный класс - класс, который содержит хотя бы один чисто виртуальный метод (метод не имеющий реализации как таковой) т.е.
Код:
virtual void SetCoords() = 0;
обьект абстрактного класса нельзя создать, он нужен для того что бы служить базовым при потроении иерархии классов. В производном классе виртуальные методы должны переопределяться, иначе класс также будет абстрактным.приведу пример
Код:
class CVehicle{
    int x;
	int y; // etc.
public:
	CVehicle(){};
	virtual ~CVehicle(){};

        // !!! виртуальный метод
	virtual void SetParameters() = 0;
};

class CPlane: public CVehicle{
	int count; // колво пассажиров
    int height; // высота
public:
    //
	void SetParameters(){};
};

class CShip: public CVehicle{
	int count; // колво пассажиров
    char port[80];
public:
    //
	void SetParameters(){};
};

{
        //использование
	CVehicle* p1;

	p1 = new CPlane;
	p1 ->SetParameters();
}
ну вобщем что бы это окончательно понять надо самому эксперементировать с кодом (и кстати все конструкторы/деструкторы, методы итд дописывайте сами), да и вопрос какие методы делать виртуальными весьма спорный. Класс CVehicle - абстрактный, а метод SetParametres - виртуальный. В общем абстрактные классы нужны для работы с производными классами через указатель на базовый класс
ввел пароль, который мне не известен

Последний раз редактировалось itisiam; 22.01.2008 в 10:42.
itisiam вне форума
Старый 22.01.2008, 17:03   #3
Voucik
 
Регистрация: 21.01.2008
Сообщений: 6
По умолчанию

спасибо за примерчик, постараюсь разобраться.
Voucik вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в php Romanbl4 PHP 3 08.08.2008 07:09
Классы Старовъръ Общие вопросы Delphi 4 26.06.2008 17:00
классы ShenDy Общие вопросы C/C++ 1 12.04.2008 14:01
Классы Mickle Общие вопросы Delphi 1 07.05.2007 12:16