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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2010, 11:19   #1
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию С++ Абстрактные классы

Задание.Реализовать абстрактный класс Shape. Создать производные абстрактные классы TWoDShape,ThreeDShape (от которых унаследуются всевозможные абстрактные формы) . Реализовать виртуальные функции: print - для вывода типа и размера, функции вычисления площади и объема.
У меня два вопроса. 1)Макет программы представляю. Полностью описанная программа работает. Но, когда начинаю вчитываться в задание, то там написано создать производные абстрактные классы. Как только я делаю производный класс абстрактным, то сразу становиться не возможным создавать объекты такого класса. Получается нужно создавать третий класс, но в задание про это не говориться. Вообщем я запуталась, правильно ли я сделала.
2) Что имеется ввиду - (от которых унаследуются всевозможные абстрактные формы).
Объясните мне, пожалуйста. Если мой макет неточен, исправьте или сбросьте ссылку на аналогичный пример.

Код:
class Shape 
{public:
virtual void print()=0;
};
class TWoDShape:public Shape  //класс треуголника
{
char *name;    
double a,b,c; 
public:
TWoDShape() 
TWoDShape(char *nm, double a1,double b1,double c1) 
~TWoDShape()
virtual void print(); 
};
void TWoDShape::print()
{cout<<name<<endl;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
}
void main()
{      
   TWoDShape f1("Treugolnik",10,5,20);
   f1.print();
}

Последний раз редактировалось Stilet; 14.10.2010 в 12:23.
Jane-sad вне форума Ответить с цитированием
Старый 14.10.2010, 12:09   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Насколько я понял задание - именно все классы абстрактные, 2D и 3D унаследованы от общего предка, а уже от этих двух будут наследоваться классы, реализующие конкретные формы - ну там круг, шар, прямоугольник, цилиндр. Почему написано, что формы тоже абстрактные - не знаю, может, еще и четвертый уровень планируется? По крайней мере, нигде не написано, что какие-то объекты надо реально создавать
Black Fregat вне форума Ответить с цитированием
Старый 14.10.2010, 14:19   #3
Jane-sad
Пользователь
 
Регистрация: 28.04.2010
Сообщений: 22
По умолчанию

Спасибо за ответ. Я вас поняла. Придется исправлять, добавлять третий уровень. Вы подтвердили мои сомнения.
Jane-sad вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ классы Azgor Помощь студентам 3 26.05.2010 22:42
Абстрактные классы. Опытным взглядом на 1 минуту работы Metal_666_ Общие вопросы C/C++ 5 15.02.2010 12:28
Классы. MAKEDON Общие вопросы C/C++ 1 24.07.2009 18:35
[C] Абстрактные типы данных. Реализация дерева общего вида. Dju Помощь студентам 0 11.05.2009 18:11