![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
johnyblackbird2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
Всем привет! Тут такая проблема есть. Здесь приведён участок кода, весь код кидать не стал, там его слишком много. Вообще я тут работаю с массивом экземпляров класса fraction(обыкновенные дроби), для которого я перегрузил все операторы. Если ещё что-то нужно кинуть, например перегрузку какого-то оператора, то я кину..
Прога валится по непонятным причинам именнов том месте, которое я указал в коде.
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
покажи перегрузку вывода для fraction.
Добавлено через 48 секунд или весь fraction покажи. если он не сильно большой. |
|||
|
||||
johnyblackbird2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) johnyblackbird2 - 8.1.2012, 16:17 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
показывай весь fraction.
|
|||
|
||||
johnyblackbird2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
|
||||
|
|||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
возвращаете ссылку на временную переменную ? ![]() Это сообщение отредактировал(а) mes - 8.1.2012, 17:35 |
||||
|
|||||
Result |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 3 Всего: 5 |
Чему равно значение "mas[nt][mn]" на 45 строке из первого поста при выполнении ?.
Не очень понял код, как мне думается в строке 45 перед вызовом оператора присвоения
будет создан временный объект через конструктор с интом
Но поскольку в теле конструктора ничего не делается, возникает непонятность смысла. Думаю что тут стоит делать сеттеры-геттеры:
Еще можно прикрутить конструктор с двумя параметрами, чисто если на будущее:
и в строке 45 заменить на:
Теперь благодаря геттерам можно избавиться от френдов, заменив их примерно на:
Оператор ввода по аналогии. Это сообщение отредактировал(а) Result - 8.1.2012, 18:15 |
||||||||||||
|
|||||||||||||
johnyblackbird2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
Я вообще в g++ компилю. И, кстати, там были ворнинги, но я тогда не особо понял, почему они там. Сейчас исправил, ворнингов нет, но прога падает всё в том же месте. То есть дело не в этом.
Добавлено через 13 минут и 19 секунд
mas[nt][mn]=5/1; nt=3; mn=2 По поводу сеттеров-геттеров я пытался это сделать(метод puta), но не понял, как вызывать эти меноды для элемента массива. Там ведь уже нельзя так обращаться к методам. Я же не могу написать вроде mas[j][k].getvalue. Конструктор копирования вообще там написал на всякий случай, он пустой и ничего не делает, его можно закомментить. Самое же непонятное, что значение h(46 строка) выводится, а всё что дальше - уже нет. |
|||
|
||||
Result |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 3 Всего: 5 |
Значит mas это двумерный массив фрактионов, а не интов?
ЗЫ. Конструктор копирования будет:
Добавлено через 12 минут и 10 секунд
Хм...
|
||||||
|
|||||||
johnyblackbird2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
именно |
|||
|
||||
johnyblackbird2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
Спасибо, насчёт массивов, что-то я тупанул, что нельзя методы так вызывать. Но я всё же хочу узнать, почему падает прога.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
johnyblackbird2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 26.12.2011 Репутация: нет Всего: нет |
Убрал & перед перед именем функции прегрузки оператора. Вот так:
И так же для +, - и *. |
||||
|
|||||
Result |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 15.5.2011 Репутация: 3 Всего: 5 |
Еще тут заметил неточность, нужно :
|
||||||
|
|||||||
Estranged |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 30.8.2010 Репутация: нет Всего: 3 |
А хоть с какой ошибкой валится?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |