47 / 39 / 15
Регистрация: 28.09.2012
Сообщений: 818
1

Почему конструктор вызывается при присвоении объекта другому объекту

31.03.2014, 02:30. Показов 848. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
оператор+ выполняется нормально, но когда уже переменная в sum, на след шаге она вызывает конструктор, ибо у меня в примере 9 выходит. А в переменной лежит 45(конструктор выполняет ф-ю возведения в многочлен)
Как это понять? Не знал что присвоение вызывает конструктора
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    mch::mch()
    {
        str = 0;
    }
    mch::mch(int tmp){
        str = 0;
        for(int i=0;i<=tmp;i++)
        {
            this->str += i;
        }
    }
 
mch mch::operator+(mch &R){
        int as= str + R.str;
         return str + R.str;
    }
 
    mch k1(2),k2(3),sum,minus,mno;
    sum = k1 + k2;
    cout << "k1 + k2 =  " << sum.str << endl;
Добавлено через 27 минут
на С# точно такой же пример сделал, и нормально работает... А на С++ что за)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2014, 02:30
Ответы с готовыми решениями:

Почему при помещении объекта в list вызывается конструктор и деструктор?
Нужна помощь опытного программиста. Не могу понять почему при помещение объекта в list вызывается...

Почему не вызывается конструктор копирования при возврате объекта из функции
Добрый день! Насколько мне известно, конструктор копирования вызывается: 1) при передачи...

this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор)
class Test { int i; public: void test(int i) { this -&gt; i = i; } }; Конструктор...

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту?
Это можно : Array a(10); a.set(0,5); Array b(a); А это нельзя : Array a(10); Array b(20);...

1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2014, 02:37 2
Конструктор должен вызываться при возврате из operator+. return str + R.str, а вернуться должен объект mch.
Конструктор с одним параметром - в качестве функции неявного преобразования.
1
31.03.2014, 02:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2014, 02:37
Помогаю со студенческими работами здесь

Какой конструктор вызывается при value initialization объекта?
Привет, есть вот такой код, например: #include &lt;iostream&gt; struct Test { int data; ...

Почему конструктор вызывается повторно при преобразовании типов?
В качестве примера предлагаю рассмотреть примерчик из учебника. В примере мы создаём класс,...

Движение 1 объекта к другому объекту
Как делать так, чтобы объект 1 считывал координаты объекта 2 и двигался к нему?

Движение объекта к другому объекту
На углу экрана(без разница где) стоит маленькое изображение коробки, а на других местах другие...

Как сделать перемещение объекта к другому объекту
Я еще новичок, но... Надо чтобы при нажатии на объект1 он находил бы на сцене объект2 и...

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C { public:


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru