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

Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как определить размер массива объявленного в другом модуле? http://www.cyberforum.ru/cpp-beginners/thread1801232.html
Возникла необходимость разбить программу на модули, и появилась проблема: Module1.cpp: ... int mas = {1, 2, 3, 4, 5}; ... Module2.cpp: ... extern int mas;
C++ Реализовать очередь с приоритетным включением на обычном массиве посмотрите код что то не правильно работает или просто не дописал норм код в методе int Adqueue() не могу сделать //1. Реализовать очередь с приоритетным включением на обычном массиве. #include <iostream> #include <time.h> using namespace std; class ExclusionProirityQueue http://www.cyberforum.ru/cpp-beginners/thread1801190.html
Вывод массива string C++
#include "stdafx.h" #include <iostream> #include <cstring> int main() { using namespace std; int sum = 0; int a;
C++ Прототип функции создающей двумерный массив
Доброго времени суток , помогите пожалуйста разобраться с заданием. Создайте функцию с ее прототипом (int a,int n). Функция во время своего выполнения должна создавать массив размерностью n на 10. #include <iostream> using namespace std; void mas(int a, int n); int main() { int n;
C++ Нужен пример кейлоггера http://www.cyberforum.ru/cpp-beginners/thread1801125.html
Срочно нужен кейлоггер который будет считывать все нажатия с клавиатуры и записывать их в текстовый файл. нужно чтоб этот кейлоггер был в процессах или в трее(главное чтоб не было видно) Кому не лень бросьте простой исходничек на с++) заранее спасибо!
C++ Почему начинающим советуют не работать с формами на С++? Часто слышала от знакомых, что лучше пока не трогать формы. С чем это связано? Как понять что уже можно с ними работать? какие знания для этого нужны ? подробнее

Показать сообщение отдельно
4elovek37
2 / 2 / 0
Регистрация: 10.10.2014
Сообщений: 12
02.09.2016, 15:16  [ТС]     Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах
Если присваивать объект базового класса производному, то без явно определённого operator=() для присваивания базового класса производному или конструктора преобразования не сработает.
Сработает, если имеем дело с указателями. Все приведенные мной примеры, естественно, при условии использовании указателей на базовый класс (к примеру массив указателей на базовый класс, фактически содержащий смешанный контингент из объектов базового класса и производных). Именно тут и появляются "скользкие моменты", расписанные мной ранее.
Не так: "Зачем его объявлять виртуальным?".
Если используем динамические выделение памяти, и при присваивании нужно выполнять "глубокое копирование".
 
Текущее время: 22:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru