![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
Есть прога:
Она вроде работает, но здесь явно что-то оформлено не по С++'овски... Укажите что и как тут должно быть... Сейчас попытался ввести многочлен степени 3... Почему-то она (прога) обращатся не к тому, что нужно, а именно вылетает с ошибкой. Не получается считать первый коэффициент при выводе... P. S. Помогающим гарантируются плюсы, если что-то дельное подскажете и с примерами... Добавлено @ 20:32 Кстати, юзается Microsoft Visual C++ 6.0 |
|||
|
||||
| MAKCim |
|
||||||||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
1. В CMainData вместо массива int* лучше, имхо, использовать готовый вектор (отпадает необходимомть контроля за выделением/освобождением памяти)
2.
судя по коду классы нигде не объявлены и не определены в месте использования в качестве friend 3. использование потоков cin, cout в CUser::ShowData() нехорошо, лучше наверное перегрузить operator<<() для CUser
4. неправильная семантика использования operator+, operator- в СPolynomial правильнее определить operator+=, operator-=, ... а через них operator+, operator-, ... (не как члены класса)
5. Использовать friend надо, имхо, как можно реже В данном случае я бы сделал нечто такое
Добавлено @ 21:28 если степень многочлена известна в compile-time можно воспользоваться для хранения cell-ов шаблоном (время компиляции увеличится зато увеличится также быстродействие)
Добавлено @ 21:36 если важна производительность и нельзя использовать статические массивы, можно использовать вместо vector<koef_t> valarray<koef_t>, который специально создавался для численных операций Это сообщение отредактировал(а) MAKCim - 18.5.2006, 21:33 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||||||||
|
|||||||||||||||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 5 Всего: 18 |
|
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
||||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
Короче с перегрузкой << ничего не выходит... |
|||
|
||||
| nostromo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 4 Всего: 10 |
Странно, у меня последний листинг заработал. Правда, VS 2003 и убрал const из
ostream& operator<< (ostream& stream, const CMainData& obj). В чем проблема? Как ругается компилятор? Еще, в теле оператора "<<" Вы используете "wcout <<" вместо "stream <<". Кажется, это может привести к неприятностям. Дале, зачем в CPolynomial методы min, max. Есть стандартные std::max<int>, std::min<int>. И главное: я полностью согласен со всеми замечаниями MAKCim-а, текст нужно переписывать. --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
на строчку в перегружаемом операторе int nn=obj.GetN(); Добавлено @ 11:59 Да... помогло, но только error C2593: 'operator <<' is ambiguous при cout << Poly1; Добавлено @ 12:00 Тьфу.. убрал ошибку... |
|||
|
||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
не стоит, в CMainData лучше сделать GetN() константой (так и напрашивается)
Добавлено @ 19:40 все таки я не понимаю, зачем Вам аж 3 класса для реализации многочлена? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 5 Всего: 61 |
||||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |