Kathel |
Отправлено: 03.06.2006, 17:42 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Помогите, пожалуйста!
Все перепробовала, ничего не помогает!
В модуле Parser.h есть namespace:
namespace Parser
{
extern Signature*S1;
extern char* str1;
extern int j1;
}
В модуле Formula есть функция, которая использует переменные этого namespace'а. Вот так:
bool FormulaTerm::StrToTree(char* str,int state)
{
using namespace Parser;
if(state==1)
{
S1 = S;
str1 = str;
j1 = 0;
}
}
Когда компилирую, выдает
[linker error] Unresolved external 'Parser::str1' причем referenced из ...Formula.obj
Как обьяснить билдеру namespace? |
|
viva |
Отправлено: 05.06.2006, 03:48 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 31
|
QUOTE (Kathel @ 03/06/2006, 17:42) | В модуле Parser.h есть namespace:
namespace Parser
{
extern Signature*S1;
extern char* str1;
extern int j1;
}
|
Это не объявление переменной, а указание на то, что где-то есть объявление
Так вот linker не находит такого объявления |
|
Kathel |
Отправлено: 06.06.2006, 20:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Спасибо Вам за отзыв и совет!
Просто в пространстве имен как раз есть обьявление
[CODE]
char* str1;
А вот почему он его не видит????
Извиняюсь за чайниковость:) |
|
Shagg |
Отправлено: 07.06.2006, 13:42 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
А почему бы не написать так:
CODE |
namespace Parser
{
//................
char* str1;
//................
}
|
дело в том, что в строке
билдер пытается присвоить переменной str1 какое то значение, хотя переменная нигде не объявлена,вот он и ругается матом |
|