Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Миака
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 19
#1

Как переделать класс из обычного в абстрактный? - C++

17.10.2011, 12:47. Просмотров 1617. Ответов 36
Метки нет (Все метки)

Значит дело вот в чем. Есть обычный класс. Написанный полностью и работает хорошо. Но нужно сделать из него абстрактный. Что нужно в него добавить чтобы он таковым считался?
Была бы очень благодарна за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 12:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как переделать класс из обычного в абстрактный? (C++):

Абстрактный класс, как аргумент функции - C++
добрый день. есть базовый класс Tag внем строковое поле Name есть производные от него класы SmplTag со строковым полем Value и класс...

Как реализовать данный абстрактный класс? - C++
Создать абстрактный класс Function с методом вычисления значения функции y=f(x) в заданной точке. Создать производные классы: Line...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...

Абстрактный класс, наследование, класс хранится в другом классе - C++
Нужна помощь. Написать программу: 1 класс. Имеется абстрактный класс который описывает какую-то сущность, например Человек. В абстрактном...

абстрактный класс как реализовать данные, над которыми методы выполняют какие-либо действия - C++
Абстрактный класс как реализовать данные, над которыми методы выполняют какие-либо действия Задание: форматированный ввод и вывод...

Объясните как объявить абстрактный класс, и при этом не тащить виртуальные методы в производные классы - C++
Суть вопроса - есть у меня класс, который я решаю сделать абстрактным. Как я понимаю что бы сделать класс абстрактным необходимо просто...

36
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
17.10.2011, 13:16 #2
Абстрактный класс - это класс, который содержит только чистые виртуальные функции. Например:

C++
1
2
3
4
5
6
class Abstract
{
public:
   virtual void Do1() = 0;
   virtual void Do2() = 0;
}
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.10.2011, 13:18 #3
Цитата Сообщение от gooseim Посмотреть сообщение
только чистые виртуальные функции.
или хотя бы одну?
0
Миака
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 19
17.10.2011, 13:19  [ТС] #4
gooseim, то есть там не может быть других функций, или просто должна быть такая?
В том классе нет наследования, поэтому я и интересуюсь... переопределять виртуальные функции получается негде.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
17.10.2011, 13:19 #5
PointsEqual,
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
17.10.2011, 13:20 #6
Миака, а что за классы?
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
17.10.2011, 13:21 #7
Миака, могут быть только чистые виртуальные функции, других не может быть.
Покажите условие задачи.
0
Миака
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 19
17.10.2011, 13:28  [ТС] #8
gooseim, создать абстрактный класс vector который имеет указатель на int, число элементов и переменную состояния. Определелить конструктор без параметров и с параметрами. Определелить функцию, которая присваивает элементу массива некоторое значение (параметр по умолчанию), функцию, которая получает некоторый элемент массива. Определить функцию печати, функции сложения и умножения элементов. Определить методы сравнение.

Класс вектор у меня есть, но он не абстрактный...
0
LosAngeles
Заблокирован
17.10.2011, 13:31 #9
gooseim,
An abstract class is a class that can be used only as a base class of some other class; no objects of an abstract
class can be created except as subobjects of a class derived from it. A class is abstract if it has at least
one pure virtual function
.
1
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.10.2011, 13:35 #10
Цитата Сообщение от Миака Посмотреть сообщение
В том классе нет наследования, поэтому я и интересуюсь... переопределять виртуальные функции получается негде.
Экземпляр абстрактного класса невозможно создать. Теперь задумайтесь над необходимостью такого класса.
0
Миака
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 19
17.10.2011, 13:36  [ТС] #11
fasked, ну это же не я придумала, что он там такой нужен) Задание дали в университете. Сама в недоумении.
0
LosAngeles
Заблокирован
17.10.2011, 13:37 #12
Цитата Сообщение от Миака Посмотреть сообщение
Класс вектор у меня есть, но он не абстрактный...
ну добавь какую-нибудь pure-virtual функцию и он станет абстрактным
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.10.2011, 13:39 #13
Цитата Сообщение от Миака Посмотреть сообщение
ну это же не я придумала, что он там такой нужен) Задание дали в университете. Сама в недоумении.
Либо наследоваться от интерфейса (асбтрактного класса), либо никак.
Цитата Сообщение от Миака Посмотреть сообщение
создать абстрактный класс vector
Может имелось в виду "абстрактный тип данных" :cofee2:
0
Миака
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 19
17.10.2011, 13:40  [ТС] #14
LosAngeles, просто равную нулю которая и делать то ничего не будет что ли?

Добавлено через 51 секунду
fasked, написано абстрактный класс, но если предположить, что абстрактный тип данных, то что тогда?
0
LosAngeles
Заблокирован
17.10.2011, 13:40 #15
Миака, да, просто равную нулю
0
17.10.2011, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 13:40
Привет! Вот еще темы с ответами:

Как объявить функцию, которая имеет место быть только в некоторых дочерних классах, а базовый класс абстрактный? - C++
Как объявить функцию, которая имеет место быть только в некоторых дочерних классах? Например //Абстрактный базовый класс ...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... - C++
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать...

Абстрактный класс/Класс интерфейс - C++
Не ловлю суть в чем разница между интерфейсом и абстрактным классом. И там и там у методов нету реализации. Ну интерфейс задает набор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru