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

конструктор копии и операторы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив классов http://www.cyberforum.ru/cpp-beginners/thread66393.html
Люди спасите как мне удалить нужные строки допустим определенно какогото человека вот программка я весь мозг поломал #include <cstdlib> #include <iostream> using namespace std; class std { protected: int a; public: void set(int n) {a=n;} };
C++ одномерный массив в одномерном массиве, состоящем из n целых элементов, вычислить сумму элементов массива, расположенных последнего элемента равного нулю http://www.cyberforum.ru/cpp-beginners/thread66378.html
Как скрыть консольное окно??? C++
ТАкой вопрос возник как сделать так что бы при запуске программы окно вообще ен появлялось?
C++ Шаблонный класс
Ребята, объясните пожалуйста, как работает шаблонный класс, своими словами, на скромном маленьком примерчике. Заранее благодарю.
C++ Массивы, очень слаб в С++ http://www.cyberforum.ru/cpp-beginners/thread66363.html
1.Дано массив D. Каких элементов больше: положительных или видъъемних? 2.Все элементы столбца с минимальным элементом заменить максимальным элементом. Я совсем незнаю как ети 2 задачи зделать, но очень надо. Помогите пожалуста, за рание спасиба!
C++ Ну ооочень тяжёлая программа =) Задана запись, состоящая из букв. Количество букв кратно числу n.Всего в записи m слов.Длина слова- n.Составить структурированную программу печати текста, находящегося между словами с заданными номерами А и В. как написать программу Добавлено через 28 минут #include <stdio.h> #include <stdlib.h> #define M 4 подробнее

Показать сообщение отдельно
JamesBlack
 Аватар для JamesBlack
36 / 36 / 3
Регистрация: 28.07.2009
Сообщений: 144
23.11.2009, 04:11     конструктор копии и операторы
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
list::list(list const& l)
{
    l.H();
    if (l.head==NULL) {head=present=NULL; return;}
    head=present=new element(l.head);
    while(l.present->next)
    {
        l.Next();
        present->next = new element(l.present->number);
        Next();
    }
}
 
list& operator = (list const& a)
{
    Clear();
    a.H();
    if (a.head==NULL) return *this;
    head = present = new element(a.head);
    while(a.present->next)
    {
        a.Next();
        present->next = new element(a.present->number);
        Next();
    }
    return *this;
}
 
list& operator + (list const& a)
{
    list *result = new list(*this);
    result->Add(a);
    return *result; 
}
 
void main()
{
list a(...), b(...), c(...);
...
a = b + c;
}
Мне надо перегрузить операции + и = для моего класса list. Только приходится в + создавать временный объект класса в куче. А если так, то получается, что он там и остается - я его нигде не удаляю. Как быть с этой проблемой? Или можно как-то сделать все через автоматическую память?

Добавлено через 1 час 42 минуты
мда... все спят.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru