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

Переопределение операции присваивания - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как реализовать флаги в параметрах функции http://www.cyberforum.ru/cpp-beginners/thread1235623.html
Объясните пожалуйста как реализовать флаги в параметрах функции. К примеру: есть такие флаги left middle right drowPoints (тут параметры флаги); Вот так я эти флаги прописываю
C++ Исправить ошибку "undefined reference" Компилирую в Ubuntu 14.04 Code::Block Есть 3 файла. klass.h initial.cpp main.cpp klass.h #include <iostream> #include <cstring> using namespace std; class Book http://www.cyberforum.ru/cpp-beginners/thread1235621.html
C++ Убрать привязку к конкретной директории. GetCurrentDirectory
Привет, всем! Новая проблемка, имеется следующее: D3DXCreateTextureFromFileEx(pDirect3DDevice, "C:/Users/Anton/Documents/Visual Studio 2010/Projects/MyProgectSprite/OpeningScreen.bmp", D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, D3DCOLOR_ARGB(255,255,255,255), NULL, NULL, &openingTexture); Мне не нравится строка...
Программа ввода и проверки пароля C++
Я хочу написать программу запрашивающая пароль пока тот не станет верным написал прогоамма работало но даже если пароль был не верен просто выводила другую строку добавил цикл программа не работает вот код #include <iostream.h> #include <stdio.h> #include <locale> using namespace std; int hacerAlert () { string answer;
C++ Игра крестики нолики http://www.cyberforum.ru/cpp-beginners/thread1235549.html
#include <iostream> using namespace std; int main () { int a,k=0,c; char mas; while(k<10) {
C++ Вывод числа в столбик с первой цифры, без массива, без строк #include <iostream> #include <math.h> using namespace std; void p(long a) { long i=0,z=a; while (z) { z/=10; i++; //êîëè÷åñòâî öèôð âî ââåäåííîì ÷èñëå подробнее

Показать сообщение отдельно
Gwini
10 / 10 / 3
Регистрация: 08.03.2014
Сообщений: 70
29.07.2014, 06:25  [ТС]     Переопределение операции присваивания
Цитата Сообщение от MrCold Посмотреть сообщение
На каждый оператор New должен быть оператор Delete.
Не освобождаете память. Остальное не смотрел.
В Деструкторе присутствуют все delete-ы. Память сдесь даже переосвобождается, из за чего и проблема.

Цитата Сообщение от dalay_lama Посмотреть сообщение
при присваивании одного объекта другому, сначала нужно очистить память, которая уже была выделена, а потом уже выделять новую, равную размеру присваемого объекта. Так-же перед всем этим следует проверить, не является ли аргумент тем-же самым объектом, если да, то и выделять ничего не нужно
Да, удаление предыдущего содержимого забыл, но пробелма не решилась т.к. присваивал и так пустому обьекту. Дело в том что Прата не писал о переопределении операции присваения. В примерах у него просто определены разные операции присваения для базового и производных классов. Может это и не может понадобится, но мне стало интересно и захотелось попробовать написать следующий код:
C++
1
2
3
4
5
    Cd obj1;  // базовый класс
    Classic obj2; //производный класс
    Cd* ptr = &obj1; 
    *ptr = obj2;  
    ptr->Report();  // ну и вот здесь хотелось бы что бы использовался метод производного класса
Но выходит так, что после этого, что даже простые обьекты производного класса при присвоении межу собой вызывают операцию присваения, которая определена в базовом класе, а не в производном. Не знаю что не так сделал.
 
Текущее время: 16:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru