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

Почему два раза создаётся объект с ОДНИМ И ТЕМ ЖЕ ИМЕНЕМ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разложение интеграла в ряд http://www.cyberforum.ru/cpp-beginners/thread296505.html
Всем кто посетил сию страницу привет) В общем мне надо рассчитать интеграл с помощью С++ в двух вариантах. Первый вариант по ф-ле Симпсона, второй - разложение в ряд. С формулой Симпсона в общем разобрался и сделал. Но вот дошел до ряда и столкнулся с траблой. Где-то то ли цикл циклит, то ли просто не мой день. Значения никак не удается сравнять) Вот и сам добрый код: #include <iostream>...
C++ 2. Дано целое число N (> 2) и набор из N вещественных чисел Всем Добрый вечер !!!! Пожалуйста решите 1 задачку!!!!! Дано целое число N (> 2) и набор из N вещественных чисел. Набор называется пилообразным, если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (то есть является «зубцом»). Если данный набор является пилообразным, то вывести 0; в противном случае вывести номер первого элемента, не являющегося зубцом. Буду... http://www.cyberforum.ru/cpp-beginners/thread296499.html
Не могу вернуться к тексту программы C++
Программа вобщем-то работает, но после выполнения компилятор (Borland C++ ) не возвращает к тексту программы как обычно. (если что коряво написал-простите за нубство) #include <stdio.h> #include <conio.h> #include <iostream.h> #include <fstream.h> #include <string.h> char fileName = "c:\\txt.txt"; void readFile()
Подскажите пжл если я в вспомогательной функции C++
Подскажите пжл если я в вспомогательной функции использую переменную с которой потом работаю в главной функции нужно ли в вспомогательной функции ставить ссылку на эту переменную?
C++ Сумма рядов http://www.cyberforum.ru/cpp-beginners/thread296487.html
Здравствуйте, Уважаемые форумчане ! :) Вот есть задание: Вычислить сумму рядов, используя зависимость последующего члена от предыдущего (а не общую формулу слагаемого), с точностью до е = 0,001 и сравнить полученный результат с точным значением, определяемым по формуле для левой части выражения. Значение аргумента Х модет быть в заданном диапазоне. Спасибо заранее за помощь. c++
C++ Методы решета Бруна и Сельберга Помогите с кодами. Нужно написать 2 программы на Си++. Тема: Нахождения простых чисел методами решета 1). Бруна, 2). Сельберга подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
15.05.2011, 23:20     Почему два раза создаётся объект с ОДНИМ И ТЕМ ЖЕ ИМЕНЕМ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <windows.h>
#include <iostream>
using namespace std;
 
class arr{
  public:
    arr(){  cout << "Вызов конструктора по умолчанию\n";};
    arr(int number){  cout << "Вызов конструктора по умолчанию другого\n";};
    arr& operator=(const arr& obj){cout << "Вызов констуктора присваивания\n";return *this;};
//    arr& operator=(int k){cout << "Вызов перегруженной операции присваивания\n";return *this;};
};
int main()
{
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
  arr snd_;
 
  snd_= 3;
  getchar();
  return 0;
}
Вывод по запуску программы:
Bash
1
2
3
Вызов конструктора по умолчанию
Вызов конструктора по умолчанию другого
Вызов констуктора присваивания
...Собсно, уже смешно
Два раза вызывается конструктор по умолчания. Первый раз я согласен корректно. А второй?
++++++++++++++++++++++++
C++
1
snd_= 3;
Это никакое не создание объекта, а вызов конструктра инициализации. Да ещё он и выполнен неправильно, ибо
// arr& operator=(int k){cout << "Вызов перегруженной операции присваивания\n";return *this;};
закомментирован, как вы видите.

...Тем не менее, никто ничё, как так и надо. Итак, имеем: объект snd создался 2(!) раза да плюс к тому вызвался
C++
1
arr& operator=(const arr& obj)
, который здесь ни к селу, ни к городу потому, что правый операнд в выражении snd_= 3 имеет тип int, а вовсе не arr& obj;

Короче я совсем запутался, помогите, кто может, спасибо.

Добавлено через 8 минут
Так-то прикольно, можно сколько угодно раз создавать объект
C++
1
2
3
4
5
  arr snd_;
  snd_= 3;
  snd_= 4;
  snd_= 5;
  snd_= 6;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru