|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.12.2009, 23:17 | #1 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
нестыковка в проге С++...
всем хорошего дня вечера и утра!вот впервые не знаю что делать в своей программе, в общем я написал обьектно-ориентированую прогу, в которой описаны процедуры действия над векторами и матрицами. и проблема в обявлении глобальной перемены.дело в том, что эта переменная обьявлена в хидере вектор. эту константную переменную потом нужно использовать в хидере матрицы. пишем в хидере матрицы(matrix.h) эту строку #include "vect.h", после этого в класе матрица должно видеть эту переменную. но не видит!вот пример кода класа вектор и матрицы:
клас вектор: Код:
Последний раз редактировалось MaTBeu; 19.12.2009 в 13:31. |
19.12.2009, 01:48 | #2 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Косячишь - спецификатор static делает переменную видимой только в текущем файле...убери статик и проверь...
Должно сработать, если нет - обратись в сторону спецификатора extren, хотя должно работать
Если я помог вам - порадуйте меня, нажмите на весы слева
|
19.12.2009, 13:23 | #3 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
и это тоже пробовал раньше. и в хидере матрица вбивал такую строку extern int N; все равно ошибка та же...
|
19.12.2009, 13:25 | #4 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
конечно, в голову приходила мысль создать отдельный хидер, где можно обьявить эту переменную, но это слишком просто. нужно код исправлять, а не убегать от ошибки
|
19.12.2009, 13:35 | #5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Мда, код еще тот... У тебя перекресное подключение хидеров.
Решить твою проблему мужно двумя способами - говнокодом или дополнительным хедером. Можно еще перестроить классы по-нормальному, но я думаю, для тебя это не выход. Способ первый (говнокодерский): Комментируешь строку Код:
Пример исправленного говнокода: Код:
Ну сделать еще один хидер, в котором объявлять константы. |
22.12.2009, 20:34 | #6 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
"Говнокодерский" не годится. потому что нам нужно изменять значение N только в одном месте, а не бегать по строкам и файлам. есть еще третий вариант: создать отдельную структуру, структуру матрицы, и не надо подключать тот(MATRIX.h), тогда будет все в порядке,и косяков в хидере не будет заметно. кстати, эта была работа с потоками в win32, только в качестве задач использовались вычисления матриц и векторов))
|
22.12.2009, 20:56 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
По-моему действительно лишне подключение файла matrix.h в vect.h. Зачем это делать? Все операции с матрицами, должны быть описаны там же где и объявление матрицы. Переместите вот эту ф-цию в файл matrix.h/cpp
Код:
|
27.12.2009, 19:54 | #8 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
netrino это было первое, что я сделал, когда появилась такая проблема в моей работе. НО, увы, в другом сппшником будет ошибка: не найдена ссылка на этот метод. а возврат результата должен быть вектор. хоть убейте - не понимаю, почему эта процедура заметна в хидере вектор, и вопит, когда эту процедуру перемещаю в хидер матрица и подключаю vect.h в MATRIX.h
|
27.12.2009, 20:13 | #9 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
А саму процедуру в Matrix.cpp перемещаете?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нестыковка времени выполнения процедур \ функций | postal2 | Общие вопросы Delphi | 12 | 20.08.2009 19:55 |
Не точности по проге | Sasuke-sama | Общие вопросы C/C++ | 3 | 01.06.2009 19:51 |
Ошибка в проге :( | Defender42 | Помощь студентам | 15 | 29.05.2009 02:08 |
музыка в проге | beygul | Помощь студентам | 6 | 09.10.2008 13:27 |
Вопрос по проге | Smorodinka | Microsoft Office Excel | 7 | 06.06.2008 23:10 |