Форум программистов, компьютерный форум 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++ Почему начинающим советуют не работать с формами на С++? Часто слышала от знакомых, что лучше пока не трогать формы. С чем это связано? Как понять что уже можно с ними работать? какие знания для этого нужны ? подробнее

Показать сообщение отдельно
Usagi
0 / 0 / 2
Регистрация: 03.07.2016
Сообщений: 14
Завершенные тесты: 2
02.09.2016, 16:40
Да, через ссылки или указатели такое присваивание будет работать, но только для базовой (общей) части. Неявное восходящие преобразование же?

Я понял, что Вы имеете ввиду: что если работать через ссылки (указатели) и определён виртуальный оператор присваивания, то согласно таблице виртуальных функций при присваивании объекту производного класса объекта базового класса должен быть вызван оператор присваивания производного класса. В этом случае будет вызван только оператор присваивания базового класса. Даже где-то у Праты написано, что операция присваивания относится к специальным членам класса.

У каждого класса свой оператор присваивания. Его нет нужды объявлять виртуальным. Я это имел ввиду.
Для "глубокого копирования" просто берётся и явно определяется оператор присваивания в нужном классе. Это 703 страница Праты. Случай с динамическим выделением памяти (под "глубокое копирование") и без него.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru