Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Class matrix |
Автор: FTK 12.12.2005, 14:04 | ||||
Hello World!!! Помогите кто-нибудь, такая проблема: есть класс matrix
Далее в програмке идет создание объекта matrix
И на этом моменте програмка останавливается. Кто-нибудь может подсказать, в чем проблема? |
Автор: Neitron 12.12.2005, 14:15 | ||
Первое что бросается в глаза это отсутсвие точки с запятой в конструкторе по умолчанию.
Приравнивашь инту доубль. |
Автор: pablo 12.12.2005, 14:16 |
Во первых: Конвертация из double в int, это никчему хорошему не приведёт, далее, что говорит программа или отладчик при остановке ? |
Автор: FTK 12.12.2005, 14:27 | ||
На самом деле, даже если просто написать
И поставив ; после конструктора по умолчанию, не работает. Программа останавливается, ничего не говорит, на клаву не реагирует. (Консоль до этой строчки выводит все нормально, и потом стоп.) |
Автор: pablo 12.12.2005, 14:41 | ||
всё компилится и работает на 6 вижуал студии |
Автор: FTK 12.12.2005, 14:48 |
У меня тож 6 студия. Но работать не хочет. Отладчик тоже при подходе к этой строке останавливается, ошибок не пишет, матрицу не создает, на f11 и f10 не реагирует.... |
Автор: pablo 12.12.2005, 15:00 | ||
Запусти увидиш вывод: матрица 10х10 с цифрами 10, всё 100% работает |
Автор: FTK 12.12.2005, 19:45 | ||
pablo Спасибо за помощь, но это я тут стормозил. Проблема-то не в конструкторе...
Он создает матрицу X(0), потом, перейдя к return, он вызывает конструктор копирования, неизвестно почему. И на этом он и повисает. Сможешь помочь? ![]() Добавлено @ 19:47 Да, и еще, кто нибудь знает, что это за ошибка? "CXX0030: Error: expression cannot be evaluated" |
Автор: FTK 12.12.2005, 21:24 |
Кто-нибудь знает, почему return может вызывать конструктор копирования??? ![]() |
Автор: blackofe 12.12.2005, 22:39 | ||
потому что ты создаешь новый объект из имеющегося. X - локальная переменная для функции compute() и будет уничтожена при выходе из области видимости (в нашем случае - из тела функции). чтобы функция вернула значение, значение переменной X копируется и возвращается. сама переменная X, как я уже сказал, при это помирает. Добавлено @ 22:42 в дополнение к pablo я бы озаботился деструктором. в имплементации такая куча new и ни одного delete. как-то это неаккуратненько ;). |