С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
#1

Не получается перезгрузка = - C++

15.04.2012, 15:45. Просмотров 1885. Ответов 53
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
template <class T> Array<T>& Array<T>::operator = ( const Array<T> &t )
    {
        Array<T> ar( t.size );
        for ( int i = 0; i < t.size; i ++ )
            ar[i] = t.p[i];
        return ar;
    }
Ошибки не выдает, но когда присваиваю пустому массиву, массив, заполненный разными объектоми и вывожу полученный массив, то вместо объектов которые были в заполененном массиве, выводятся объекты созданные конструктором по умолчанию( В чем проблема?

Добавлено через 5 минут
Суть кода, можно понять отсюда: Шаблоны классов: контейнер. Несколько вопросов , там только вместо Array - название vect, но там вообще неправильно оператор = перегружен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 15:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается перезгрузка = (C++):

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение втор

Загрузить видео вконтакте. Странно получается. Почему так получается? - Софт
Решил згрузить в контакт Мультфильм Дикая планета http://www.youtube.com/watch?v=8-nwT9YQ0t0&amp;NR=1&amp;feature=endscreen в максимально хорошем...

Дифференциальное уравнение второго порядка не получается в получается в маткаде - MathCAD
Дифференциальное уравнение второго порядка не получается в маткаде. Помогите решить


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

Или воспользуйтесь поиском по форуму:
53
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 18:43  [ТС] #31
Цитата Сообщение от silent_1991 Посмотреть сообщение
но вы приглядитесь лучше к 32 строке моего кода
m_size = source.size();
в этой строчке мы получим размер временного объекта size, может вы 33 имели ввиду?


Цитата Сообщение от silent_1991 Посмотреть сообщение
Изменит. Но какое поле, по вашему, она изменит?
вы имели ввиду - чье поле она изменит? Поле объекта, который вызывает присваивание, тоесть в который и будет все копироваться.

Возможно я туплю очень? Или провалы в знаниях?
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 18:46 #32
gore-lykovoe, не пытайтесь догадаться, что и имел ввиду. По моему предыдущему сообщению это вполне ясно. Я указал на верную строку в своём коде. И чётко написал: "какое поле будет изменено". Какое, а не чьё.

Добавлено через 2 минуты
Цитата Сообщение от gore-lykovoe Посмотреть сообщение
мы получим размер временного объекта size
Мы его не просто получили. Мы сделали главное - присвоили его.
1
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 18:47  [ТС] #33
Цитата Сообщение от silent_1991 Посмотреть сообщение
какое поле будет изменено
будет изменен указатель на динамическую память, тоесть теперь поместятся в эту память все объекты
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 18:48 #34
gore-lykovoe, так. А что будет с полем size?
1
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 18:51  [ТС] #35
Цитата Сообщение от silent_1991 Посмотреть сообщение
Мы сделали главное - присвоили его.
понял, исправлю

Добавлено через 1 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
так. А что будет с полем size?
понял, это конечно очень не правильно, но это не должно было влиять на работу программы. Не понимаю, почему у меня ошибки сыпятся(
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 18:52 #36
Цитата Сообщение от gore-lykovoe Посмотреть сообщение
временного объекта
Кстати, там будет не обязательно ссылка на временный объект. Мы можем один массив присваивать другому, тогда там будет ссылка на обычный объект, созданный нами собственноручно.

Добавлено через 28 секунд
gore-lykovoe, это и не влияет. Можете ещё раз сходить по ссылке выше.
1
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 18:59  [ТС] #37
Цитата Сообщение от silent_1991 Посмотреть сообщение
Можете ещё раз сходить по ссылке выше.
я вывел значения полученного массива arr1, все они равны рандомным числам. Поэтому видать ошибку в конце и выдает. Только я не понимаю, почему числа рандомные(
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 19:01 #38
gore-lykovoe, http://liveworkspace.org/code/2ec407757025c1b87c2a627fd156903e
1
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 19:25  [ТС] #39
Цитата Сообщение от silent_1991 Посмотреть сообщение
http://liveworkspace.org/code/2ec407...2a627fd156903e
чудеса какие то, надо пересоздать проект пожалуй

Добавлено через 21 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
http://liveworkspace.org/code/2ec407...2a627fd156903e
вообщем создал новый проект, скопировал код с сайта этого, не работает, выдает левые значения и завершается с ошибкой. Видать дело в среде. Я под VS-2010. Вы можете попробывать у себя запустить, пожалуйста? Или что мне делать?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.04.2012, 19:33 #40
Цитата Сообщение от gore-lykovoe Посмотреть сообщение
Я под VS-2010. Вы можете попробывать у себя запустить, пожалуйста? Или что мне делать?
а теперь подробно шаг за шагом опиши что делаешь, как создаешь проект, какие ошибки
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 19:35 #41
Чёрт побери... В студии и правда мусор О_о.
0
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 19:43  [ТС] #42
Цитата Сообщение от Jupiter Посмотреть сообщение
а теперь подробно шаг за шагом опиши что делаешь, как создаешь проект, какие ошибки
Создаю проект win32 console application, выбираю пустой проект, библиотек никаких не подключаю. Потом нажимаю добавить cpp файл. Захожу по ссылке на сайт, копирую весь код и вставляю его в cpp файл. Компилирую. Запускаю. Вылетает с ошибкой. В консоли 6 значений всегда. Скриншот ошибки:
0
Миниатюры
Не получается перезгрузка =  
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 19:50  [ТС] #43
Цитата Сообщение от silent_1991 Посмотреть сообщение
В студии и правда мусор
Сейчас вместо arr1 = arr2 + arr3; сделал arr1 = arr2; Программа завершается по exit(0), который я писал в перегрузке [], уже интересно
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
15.04.2012, 19:52 #44
gore-lykovoe, ну это потому что цикл до 6, а размер будет 3.
0
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
15.04.2012, 20:10  [ТС] #45
Цитата Сообщение от silent_1991 Посмотреть сообщение
ну это потому что цикл до 6, а размер будет 3.
ясно, кстати я еще не перепресвоил размер для временного объекта в "+", но это не помогло

Добавлено через 15 минут
silent_1991, вы не знаете что делать в этом случае? Просто сам не могу найти ошибку, жду ответа
0
15.04.2012, 20:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.