![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
![]()
всем хорошего дня вечера и утра!вот впервые не знаю что делать в своей программе, в общем я написал обьектно-ориентированую прогу, в которой описаны процедуры действия над векторами и матрицами. и проблема в обявлении глобальной перемены.дело в том, что эта переменная обьявлена в хидере вектор. эту константную переменную потом нужно использовать в хидере матрицы. пишем в хидере матрицы(matrix.h) эту строку #include "vect.h", после этого в класе матрица должно видеть эту переменную. но не видит!вот пример кода класа вектор и матрицы:
клас вектор: Код:
Последний раз редактировалось MaTBeu; 19.12.2009 в 13:31. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
![]()
Косячишь - спецификатор static делает переменную видимой только в текущем файле...убери статик и проверь...
Должно сработать, если нет - обратись в сторону спецификатора extren, хотя должно работать ![]()
Если я помог вам - порадуйте меня, нажмите на весы слева
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
![]()
и это тоже пробовал раньше. и в хидере матрица вбивал такую строку extern int N; все равно ошибка та же...
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
![]()
конечно, в голову приходила мысль создать отдельный хидер, где можно обьявить эту переменную, но это слишком просто. нужно код исправлять, а не убегать от ошибки
|
![]() |
![]() |
![]() |
#5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Мда, код еще тот... У тебя перекресное подключение хидеров.
Решить твою проблему мужно двумя способами - говнокодом или дополнительным хедером. Можно еще перестроить классы по-нормальному, но я думаю, для тебя это не выход. Способ первый (говнокодерский): Комментируешь строку Код:
Пример исправленного говнокода: Код:
Ну сделать еще один хидер, в котором объявлять константы. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
![]()
"Говнокодерский" не годится. потому что нам нужно изменять значение N только в одном месте, а не бегать по строкам и файлам. есть еще третий вариант: создать отдельную структуру, структуру матрицы, и не надо подключать тот(MATRIX.h), тогда будет все в порядке,и косяков в хидере не будет заметно. кстати, эта была работа с потоками в win32, только в качестве задач использовались вычисления матриц и векторов))
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
По-моему действительно лишне подключение файла matrix.h в vect.h. Зачем это делать? Все операции с матрицами, должны быть описаны там же где и объявление матрицы. Переместите вот эту ф-цию в файл matrix.h/cpp
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.12.2009
Сообщений: 16
|
![]()
netrino это было первое, что я сделал, когда появилась такая проблема в моей работе. НО, увы, в другом сппшником будет ошибка: не найдена ссылка на этот метод. а возврат результата должен быть вектор. хоть убейте - не понимаю, почему эта процедура заметна в хидере вектор, и вопит, когда эту процедуру перемещаю в хидер матрица и подключаю vect.h в MATRIX.h
|
![]() |
![]() |
![]() |
#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 |