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

Скопировать объект, на который ссылается указатель на абстрактный класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить наибольшее число k, для которого 2^k<n http://www.cyberforum.ru/cpp-beginners/thread1809083.html
Вводится натуральное число n. Получить наибольшее число k, для которого 2^k<n . Не могу сообразить как сделать. Через логарифм может быть. Будьте добры подсказать пожалуйста.
C++ Ошибка компиляции простой программы Написана программа на Borland 6 C++ в консольном режиме ( Console Wizard ) , но проверить ее работоспобность на самой программе ну никак не получается( сама программа выдает ошибку, скачивал с разных ресурсов, ошибка совместимости, плюс еще определенные нюансы, которые исправить пока не возможно). Хотел проверить на более продвинутых программах(авось повезет), нет, там просто старые библиотеки и... http://www.cyberforum.ru/cpp-beginners/thread1809074.html
Как ввести в программу функцию из стороннего файла? C++
Друзья, будьте добры, подскажите решение. Как ввести в программу функцию из стороннего файла. Попутно я нашел кое какую информацию, от моего преподавателя, что для работы с фку из сторонних файлов, следует установить дополнительные библиотеки, что то типа интерпретатора. Подскажите кто владеет данной информацией.
C++ Специальная работа для работы с текстом (для нужд БНФ)
Здравствуйте, форумчане. Необходимо код на CSS прогнать через метатранслятор БНФ и получить на выходе терминалы, нетерминалы, служебные слова. Так как работать надо с обычным текстом, то может быть есть специальные программы (не для БНФ) для работы с текстом и своим языком программирования или ГУИ. БНФ этого языка уже есть, просто алгоритм для определения нужных кусков кода в голове построить...
C++ Найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread1809015.html
Необходимо найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Ищет не все суммы диагоналей. Помогите пожалуйста найти ошибки. #include <iostream> int main() { setlocale(LC_ALL, "Russian"); const short n(3), m(8); int mas = {{3, 1, 2},
C++ Динамический ввод и вывод данных в двумерный массив Не могу реализовать ввод и вывод данных двумерного массива используя указатель на указатель, в чём проблема? cin >> *(*(p+n*i)+j); #include <iostream> using namespace std; int main() { system("color f0"); int n, m; подробнее

Показать сообщение отдельно
JonyCage
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 4
18.09.2016, 15:51  [ТС]
А не подскажите как тогда реализовать эту функцию
Код
virtual Expression* clone() const = 0;
к примеру у класса Add(сумма):
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Add:public Expression
{
private:
    Expression *expr1, *expr2; 
    
    Expression *result;
    int version;
public:
    
        //конструкторы
        Add(){}
         
    Add(Expression *s1, Expression *s2):expr1(s1), expr2(s2)
    {
        result=NULL;
    }
 
    ~Add(){delete result;}
 
    Expression *diff()
    {
        std::cout<<"add diff\n";
        result=new Add(expr1->diff(),expr2->diff());
        return result;
    }
 
    void print()
    {
        
        std::cout<<'(';
        
        expr1->print();
        std::cout<<'+';
    
        expr2->print();
        std::cout<<')';
    }
 
    Expression* clone() const
    {
        Add *add_clone=new Add(expr1, expr2);
        return add_clone;
    }
};
Мой вариант реализации ведь не создаст физической копии, точнее копия будет, но указатели expr1 и expr2 у клона будут ссылаться на те же объекты что и указатели expr1 и expr2 у оригинала, а это не имеет особого смысла. Спасибо.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru