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

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

Войти
Регистрация
Восстановить пароль
 
xam max
3 / 3 / 0
Регистрация: 27.09.2009
Сообщений: 200
#1

Абстрактный класс - C++

09.01.2012, 14:26. Просмотров 740. Ответов 1
Метки нет (Все метки)

вот у меня есть классы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class CCommand
{
public:
    virtual ~CCommand() {};
    virtual void execute(CShape *selection)=0;
    virtual void unexecute()=0;
    virtual CCommand* clone()=0;
};
 
class CMoveCommand:public CCommand
{
public:
    CMoveCommand(int _dx,int _dy);
    void execute(CShape* _selection,Panel^ panel);
    void unexecute(Panel^ panel);
    CCommand* clone();
    ~CMoveCommand(){};
private:
    CShape *selection;
    int dx,dy;
};
class CShape
{
public:
    virtual void move(int _dx,int _dy)=0;
    virtual void draw(Panel^ panel)=0;
};
и есть функция
C++
1
2
3
4
5
CCommand* CMoveCommand::clone()
{
    CCommand* move=new CMoveCommand(dx,dy);
    return move;
}
почему компилятор ругается на функцию как будто я пытаюсь создать обьект абстрактного класса?
и как это предотвратить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 14:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Абстрактный класс (C++):

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

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

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

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

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

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

1
silent_1991
Эксперт С++
4985 / 3042 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.01.2012, 14:35 #2
xam max, у вас в классе CMoveCommand метод execute имеет сигнатуру void execute(CShape* _selection,Panel^ panel);, тогда как в базовом классе CCommand он определён как virtual void execute(CShape *selection)=0; Как видно, эти методы имеют разную сигнатуру. Таким образом, метод базового класса так и остаётся чистым виртуальным в производном, а значит, производный класс также является абстрактным.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 14:35
Привет! Вот еще темы с ответами:

абстрактный класс - C++
не компилирует abcd.cpp //abcd.h #include <cstring> #ifndef _ABCD_H_ #define _ABCD_H_ class ABCd { private: ...

Абстрактный класс - C++
Ребят такая проблема, точнее недопонимания. Реализую графический редактор. Есть базовый абстрактный класс GraphObject От него...

Абстрактный класс - C++
Здравствуйте, скажит пожалуйста: как создать абстрактный базовый класс Triad c виртуальными методами увеличения на 1 ,и производные классы...

абстрактный класс - C++
Всем привет, снова я, только уже с новым вопросом, а что такое абстрактный класс. Читаю книгу, не могу врубиться, рассказывается про...


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

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

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