Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36

Почему создаются новые объекты?

19.02.2011, 01:03. Показов 2638. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Я не могу понять где создаются новые объекты
Есть у меня простенький класс
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
class data 
{
    char* str;
public:
    data(): str("Hi")
    {}
    data(char* ch): str(ch)
    {}
    void setData(char* ch)
    {
        str = ch;
    }
    void printData()
    {
        cout << str << endl;
    }
    virtual ~data ()
    {
        cout << "data deleted\n";
    }
    data& operator= (data& v)
    {
        str = v.str;
        return *this;
    }
};
Обратите внимение на перегруженный оператор = . Если я возвращаю ссылку на data (как в коде), то при присваивании одго экземпляра класса другому, деструктор ничего не пише мне в консоль. Если я возвращаю просто data
C++
1
2
3
4
5
    data operator= (data& v)
    {
        str = v.str;
        return *this;
    }
то при присваивании в консоле дает о себе знать деструктор.
Зачем компилятор создет еще один экземпляр класса data что бы просто передать *this ?
Если кто понимает, то объясните пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2011, 01:03
Ответы с готовыми решениями:

Создаются одинаковые объекты
Доброго времени суток. Начал изучать ООП и столкнулся с проблемой. Пишу класс работы с матрицами. Имеется такой конструктор: ...

Классы: Не создаются объекты класса Apple
Includes.h #include &lt;stdlib.h&gt; #include &lt;gl\glut.h&gt; #include &lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; #include&lt;stdio.h&gt; ...

Объекты каких потоков автоматически создаются при запуске программы
Здраствуйте, могу конечно немного переврать вопрос, но звучит примерно так: Объекты каких потоков автоматически создаются при запуске...

21
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
19.02.2011, 15:05
Студворк — интернет-сервис помощи студентам
OMGHero, хаааа. Переключил сборку на релизную - результат как у вас. Переключился обратно на дебажную - снова дважды вызывается деструктор... Видать для большей информации в дебажной сборке действительно все действия выполняются как надо, а в релизной всё оптимизируется по полной и оказывается, что без чего-то можно обойтись.
1
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 36
19.02.2011, 15:08  [ТС]
даа, переключил на дебажный режим - появилось две строчки =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2011, 15:08

Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса
Цель: Получить практические навыки реализации классов на С ++. Основное содержание работы Написать программу, в которой создаются и...

Не создаются новые потоки при распараллеливании цикла for (работает только один поток - главный)
Доброго времени суток, ребята! Пишу код по распараллеливанию умножения матриц. Всё вроде работает верно, но есть один момент OMP не...

Написать программу, в которой создаются и уничтожаются объекты класса "Library", определенного пользователем
Здравствуйте. Помогите пожалуйста. Написать программу, в которой создаются и уничтожаются объекты класса, определенного пользователем....

Почему при программировании C++/Win32 создаются элементы старого вида?
И снова всем здравствуйте!!! Я продолжаю грызть гранит программирования на C++ В общем проблема следующая при создании приложения Win32 в...

В винде создаются новые сети
Здравствуйте!) Каждый раз,когда вставляю телефон через USB, и использую в качестве модема,то создается постоянно новая сеть.Так было в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru