Класс корни и степени. Помогите пожалуйста
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Добрый день! Не могли бы мне помочь с прг. Проблема, как я понимаю в Wurzel& operator*(Wurzel& w) и исключения. Но не могу понять, что именно не так?
Класс корень и степень (матем)
Wurzel(1, 7) = 7 из 1
Вот мой код классa Wurzel.h
rrg01, читаю твой код и возникает ощущение, что читаю бред. Кодобред. Ты сам-то понимаешь, что у тебя написано?
Для начала я бы тебе посоветовал написать подробные комментарии к твоему классу. Думаю, что в процессе ты многое изменишь. А потом, если проблема останется, можно и обсудить.
Это то что дано в задании, здесь к сожалению менять я ничего не имею право
Такой вот должен быть вывод:
Cranium, я начинающий программист, прошу строго не судить)
rrg01, позволь спросить, если ты пишешь, что «// С этого момента прг не работает», я делаю вывод, что ДО этого момента всё работает? Но как, Карл? Как? Как оно может работать, если оно не компилируется по причине отсутствия определений для конструктора и деструктора?
это уже третий файл Wurzel.cpp, там конструктор и деструктор. А все методы и функции я выполняю в Wurzel.h. Из за этого все работает, и я внесла некоторые изменения, и проблема сейчас не в операторе * а в исключениях. Не могу понять почему, но компилятор все время выдает ошибку о том что исключение не обработано
Кстати с выводом тоже что-то напутано. Ты пишешь, что должно быть выведено:
а из текста программы получается, что должно быть так:
А откуда появляется в первой строчке в конце
(1. из 0)
— я вообще не понял. По тексту программы эта строка вывода формируется операторомcout << a << " " << b << " " << c << " " << d << endl;
— выводятся на печать четыре экземпляра класса, а последующий вывод должен начаться с новой строки.Опаньки!.. Так ты и раздельную компиляцию умеешь? Так какого же чёрта ты определения методов в заголовочный файл понапихала?
rrg01, ты во многих местах наделала больших и маленьких ошибок. Мне, честно говоря, лениво во всё тыкать пальцем и комментировать. Ниже прилагаю код программы. Если я правильно понял задание, это должно работать именно так. Посмотри мой код, сравни со своим. Постарайся разобраться почему сделано именно так. Если будут вопросы — пиши.
main.cpp
Wurzel.h
Wurzel.cpp
Извините, но у меня все же есть пару вопросов.
Почему private:
double exp;
double wert;
в конце? это без разницы?
и еще один момент, в коде у вас под комментарием остался не выведенный cout;
Это должно должно быть исключением, но в рамки try не входит. И естественно компилятор выдает ошибку, не обработанное исключение.
Но задание изменить не возможно.
И кстати, Спасибо вам огромное, за помощь!
Где в объявлении класса располагается секция
private
— без разницы. Рекомендуют в конце. Из тех соображений, что когда человек читает объявление класса, основное внимание уделяется открытым методам и членам.Этот ребус я кажется тоже разгадал. Это, фактически, — умножение на 0. Поэтому исключения здесь не будет. Но надо этот «особый случай» отработать в перегруженном операторе умножения:
Спасибо большое за помощь!
Можно к вам обратиться еще по одному вопросы, но уже другое задание.
Не могу понять, как работать с enum в классах(как создать конструктор тд тп с enum)
rrg01, пожалуйста ))
Обращаться за помощью конечно можно. Пиши на здешний форум, только под новый вопрос новую тему создавай. Если не я, то кто-то ещё скорее всего поможет.
Вопрос(ы) сформулируй поконкретнее. Пока непонятно с чем у тебя проблемы.
PS. Когда постишь исходный код, оформляй по здешним правилам разметки (написаны над окном ввода поста; лучше оформлять «вручную»). И проверяй что получается кнопкой
Предпросмотр
.Cranium, все понятно) Спасибо!))