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

Копирующий конструктор абстрактного класа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Полиморфизм в с++ http://www.cyberforum.ru/cpp-beginners/thread1039316.html
Вообщем я делал программу,изначально в ней было реализовано наследование.Затем дали задание реализовать полиморфзим для функции Scale для классов сфера и паралепипед.Делал все ,как обьясняли в...
C++ Шейкерная сортировка Неправильно сортирует шейкерной сортировкой, почему-то не хочет проходить справа на лево массив, мне так кажется. Потому что начало хорошее - наименьшее число перемещается в первую позицию, а дальше... http://www.cyberforum.ru/cpp-beginners/thread1039310.html
C++ Создать объект - очередь с перегруженными операциями
Будьте добры помочь( Задание 1. Унарная операция Создать объект - очередь с перегруженными операциями ++ как функциями-членами, -- как дружественными функциями. (Как постфиксными так...
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные C++
нужно составить текст программы, которая позволяет по введенной строке поменять первые буквы каждого слова на прописные. Вывести на экран символьную строку до и после изменения. p.s:знаю только...
C++ Двумерный массив в степени http://www.cyberforum.ru/cpp-beginners/thread1039271.html
Ребят, задание на фото. Вроде сделал как надо, но ругается на перегруженную функцию pow.. помогите исправить.. #include <iostream> // бибилиотека ввода/вывода #include <iomanip> // библиотека для...
C++ Двухмерный массив Как в двухмерном массиве выделить, а точнее работать с элементами массива которые находятся до главной диагонали. Вопрос в том как сделать главную диагональ НЕ квадратного массива? Добавлено через... подробнее

Показать сообщение отдельно
xajker
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 12

Копирующий конструктор абстрактного класа - C++

12.12.2013, 21:45. Просмотров 327. Ответов 2
Метки (Все метки)

Добрый вечер. Сразу к делу.
Есть абстрактный класс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Product abstract
{
protected:
    int lipids;
    string brand;
 
public:
    Product();
    Product(int _lipids, string _brand);
    virtual void show() abstract;
    virtual void input() abstract;
};
есть производный класс:

C++
1
2
3
4
5
6
7
8
9
10
11
class Milk: public Product
{
protected:
    int capacity;
 
public:
    Milk();
    int getLipids();
    virtual void show() override;
    virtual void input() override;
};
есть третий "вспомогательный" класс, который своим полем имеет контейнер Queue<Product> queue (очередь тоже сам писал).
У этого класса есть метод:

C++
1
2
3
4
5
6
7
void Presenter::createMilk()
{
    Milk *milk = new Milk();
    milk->input(); //заполняет поля класа
    Product *pr = dynamic_cast<Product*>(milk);
    queue.push(*pr); // ERROR!!!
}
И вот в обозначенной строчке ошибка
"no suitable user-defined conversion from <Product> to <Product> exist"

Слышал что нужно конструктор копирования сделать для абстрактного класса, но не совсем понимаю зачем. Помогите разобраться и подскажете как правильно реализовать это.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru