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

Перегрузка конструктора копирования и оператора присвоения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дальнейшее изучение С++ http://www.cyberforum.ru/cpp-beginners/thread444347.html
Вот хотел у вас спросить, что дальше можно почитать после Бьярне Страуструп Программирование: принципы и практика использования C++, и после Р.Лафоре ООП в С++, планирую купить по WinApi и что то еще хотел у вас спросить что можно еще купить почитать
C++ полноэкранный режим консоли Здравствуйте! Не могли бы подсказать, как программно переходить в полноэкранный режим в консоле? (Именно переходить, а не получать информацию, является ли режим полноэранным) Добавлено через 19 минут Функцию нашёл тут, только возникают ошибки. Код программы: #include <windows.h>; #include <wincon.h>; http://www.cyberforum.ru/cpp-beginners/thread444341.html
C++ Преобразовать выражение в постфиксную форму
Преобразовать выражение, составленное из цифр и знаков арифметических операций (+,-,*,/) в постфиксную форму. В постфиксной форме сначала записываются операнды, а затем знак операции. Обычная запись 3+4 (5-4)*2 2*(3+4)*5 Постфиксная запись 3 4 + 5 4 – 2 * 2 3 4 + * 5 *
C++ Построить некоторый Автомат на три команды
Некоторый автомат может запросить два числа и выполнить 3 команды. Команда А преобразует имеющуюся пару чисел (х, у) в (х-у,у), команда В преобразует пару чисел (х,у) в пару (х+у,у), команда С преобразует пару чисел (х,у) в пару (у,х). Составьте алгоритм и программу работы автомата.
C++ Векторы http://www.cyberforum.ru/cpp-beginners/thread444323.html
Определите полусумму длин двух векторов А(1,5; 2,5; -0,3) и В(-11,7; -9,3; 2,5; 3,7; -1,2). Вычислите, длины вектора оформив в виде функции.
C++ Модуль Разработать и отладить программу состоящую из модуля, который содержит процедуру, которая обнуляет элементы матрицы под главной диагональю и функцию, которая определяет среднеарифметическое отрицательных элементов. подробнее

Показать сообщение отдельно
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
11.02.2012, 17:40     Перегрузка конструктора копирования и оператора присвоения
не нужно путать статические и динамические типы. первые определяются на этапе компиляции, вторые - на этапе выполнения.
на этапе выполнения в *(*(temp+i)) находится объект типа book(или что там у вас). но компилятору нас*ать, что там на этапе исполнения. на этапе компиляции все что он видит - указатель на publication и генерирует соответствующий код для объектов типа publication. для того, чтобы он на этапе компиляции генерил присваивание book::operator=, придется явно ему это указать, например, так
C++
1
*((book*)*(temp+i))=*((book*)*(ipublist+i));
но это совсем не ок и опасно. для этого и придумали dynamic_cast, который безопасен в плане полиморфного приведения типов на этапе выполнения(!!!), т.е. на этапе выполнения у вас и будет по функциональности это
C++
1
*((book*)*(temp+i))=*((book*)*(ipublist+i));
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru