3°C
завтра: 5°C
Погода в Перми
3°C
днем5°C
вечером9°C
завтра5°C
Подробно
 63,79
+0.0046
Курс USD ЦБ РФна 24 апреля
63,7906
+0.0046
 71,75
+0.0243
Курс EUR ЦБ РФна 24 апреля
71,7453
+0.0243
  • Алисия

    Анонимный пользователь

    Помогите, пожалуйста!
    Создаю абстрактный класс

    //---Abstractn class----

    class Figura {

    public:
    virtual void set()=0;

    };

    На его основе создаю производный класс

    //---Class figura-kontur---

    class FiguraKont: public Figura {

    int x1,x2,x3,y1,y2,y3;
    int x12,x22,x32,y12,y22,y32;

    public:

    void set(int xt1,int xt2, int xt3,int yt1,int yt2,int yt3)

    {x1=xt1; x2=xt2; x3=xt3; y1=yt1; y2=yt2; y3=yt3;

    }};

    Затем в основной программе указываю

    void main()
    {
    ZakrFigura A;
    ....}

    Выдается ошибка: "Cannot create instance of abstract class "FiguraKont""
    В чем моя ошибка???

  • activist

    Сообщений: 344

    если надо создаь объект типа Figura , то пишем в main-е:
    Figura *A;

    Некоторые люди дуры (-:

  • Алисия

    Анонимный пользователь

    Огромное спасибо! я разобралась!
    Вопрос снят.

  • experienced

    Сообщений: 565

    Хорошо что разобрались!
    Объясню в чём проблема. Компилятор считает ваш производный класс FiguraKont абстракнным, т.к. данный класс не реализует функцию virtual void set()=0; базового класа. Чтобы класс FiguraKont перестал быть абстрактным, и можно было создавать объекты данного класса, вам необходимо реализовать в нем функцию void set()
    Обязательно обратите внимание - данная функция имеет пустой список аргументов!

Записей на странице:

Перейти в форум

Модератор: