Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
D1zarm
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
1

E2451: Undefined symbol 'A'

10.05.2018, 16:32. Просмотров 870. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    size1=StrToInt(Form1->Edit1->Text);
    size2=StrToInt(Form1->Edit2->Text);
 
    Form1->Label6->Caption = "";
    Form1->Label7->Caption = "";
    Matrix A(size1,size2);
    A.Display1();
    A.Display2();
 
}
 
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 
    A.Reload();
    A.Add();
}
Компилирую программу и оно выдает данную ошибку:
E2451 Undefined symbol 'A'
Unit1.cpp(41): parsing: void _fastcall TForm1::Button2Click(TObject *)

Помогите пожалуйста с решением данной проблемы, я уже все перепробовал, ничего не помогает. Методы класса работают нормально, если прописываю их там же, где и определял Matrix A.

Заранее благодарю за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2018, 16:32
Ответы с готовыми решениями:

E2451 undefined symbol
Помогите исправить ошибку строчка: void TForm1::compute(ang, scl, inv, flw)...

E2451 Undefined symbol
Unit2.cpp(45): E2451 Undefined symbol 'Memo1' Unit2.cpp(61): E2268 Call to...

E2451 Undefined symbol 'PaintBox1'
Здравствуйте. Как можно использовать PaintBox вне событий? Лучше бы как лишние...

E2451 Undefined symbol 'List'
Есть вот такой кусок кода и есть три ошибки с листами. Помогите или подскажите...

Ошибка E2451 Undefined symbol
Начинаю учится в с++ Builder 6, компилирую программу: ...

12
Si14
48 / 46 / 31
Регистрация: 26.07.2015
Сообщений: 103
10.05.2018, 18:13 2
Скорее все 'A' набрано на русской раскладке или в юникод кодировке. Просто сотри и набери заново на английской раскладке.
0
S0lexV
21 / 21 / 6
Регистрация: 27.07.2011
Сообщений: 264
10.05.2018, 18:14 3
Обращение к классу из разных файлов
1
Lelik-pahan
1364 / 782 / 175
Регистрация: 25.11.2009
Сообщений: 1,596
Завершенные тесты: 1
10.05.2018, 18:17 4
D1zarm, Matrix A объявлена внутри Button1Click и, соответственно, видна только в пределах этой функции.
Когда ты обращаешься к A в Button2Click, естественно выходит ошибка.
0
D1zarm
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
10.05.2018, 18:22  [ТС] 5
Lelik-pahan,Спасибо, кэп, ваша лодка уже готова..
Я сам знаю в чем проблема, я не могу просто понять как ее пофиксить
0
Si14
48 / 46 / 31
Регистрация: 26.07.2015
Сообщений: 103
10.05.2018, 18:36 6
Вместо того, что бы дерзить, лучше бы взял учебник по C/C++ и начал курить раздел "время жизни и области видимости переменных"
0
D1zarm
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
10.05.2018, 18:50  [ТС] 7
Какая польза от ваших обоих ответов, если вы мне говорите абсолютно очевидные вещи? Если бы я не знал суть ошибки я бы спросил именно про нее,но вопрос поставлен про другое. Вы тупо льете воду, вместо того, чтобы дать нормальный ответ как S0lexV
0
d7d1cd
209 / 139 / 50
Регистрация: 30.06.2011
Сообщений: 1,321
Завершенные тесты: 1
10.05.2018, 19:18 8
Цитата Сообщение от D1zarm Посмотреть сообщение
Я сам знаю в чем проблема, я не могу просто понять как ее пофиксить
Ты не знаешь в чем проблема, тебе так только кажется. Тебе ясно сказали, что переменная А объявлена внутри функции Button1Click. Это значит, что она "живет" только там. Ты же ее хочешь использовать в функции Button2Click. В этой функции нет переменной А.
Объяви переменную А глобально или сделай ее членом класса.
0
Si14
48 / 46 / 31
Регистрация: 26.07.2015
Сообщений: 103
10.05.2018, 19:41 9
Так как размер матрицы задается внутри Button1Click следует поступить так. Объявить А глобально, а код из конструктора А перекинуть в метод Init. Если не разберёшься, скидывай и код класса Matrix
0
Lelik-pahan
1364 / 782 / 175
Регистрация: 25.11.2009
Сообщений: 1,596
Завершенные тесты: 1
10.05.2018, 22:02 10
Лучший ответ Сообщение было отмечено D1zarm как решение

Решение

Не по теме:

Цитата Сообщение от D1zarm Посмотреть сообщение
Какая польза от ваших обоих ответов, если вы мне говорите абсолютно очевидные вещи?
Из твоей постановки вопроса совершенно не очевидно, понимаешь ты в чём проблема или нет. И то, что ты экспериментальным путём определил, что
Цитата Сообщение от D1zarm Посмотреть сообщение
Методы класса работают нормально, если прописываю их там же, где и определял Matrix A
вовсе не означает, что ты понимаешь что такое область видимости, локальные и глобальные переменные. А если бы знал, то и знал бы
Цитата Сообщение от D1zarm Посмотреть сообщение
как ее пофиксить



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Matrix *A = NULL;
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    size1 = StrToInt(Form1->Edit1->Text);
    size2 = StrToInt(Form1->Edit2->Text);
 
    Form1->Label6->Caption = "";
    Form1->Label7->Caption = "";
    
    if (!A)
        A = new Matrix(size1, size2);
    A.Display1();
    A.Display2(); 
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ 
    if (A)
    {    
        A.Reload();
        A.Add();
    }
}
И не забудь потом где-нибудь сделать delete A;
1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26502 / 17797 / 7042
Регистрация: 22.10.2011
Сообщений: 31,325
Записей в блоге: 6
11.05.2018, 01:28 11
Лучший ответ Сообщение было отмечено D1zarm как решение

Решение

Если уже
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
Matrix *A
, тогда

C++
1
2
3
4
5
6
    A->Display1();
    A->Display2(); 
 
// ...
        A->Reload();
        A->Add();
2
Lelik-pahan
11.05.2018, 09:01
  #12

Не по теме:

Цитата Сообщение от volvo Посмотреть сообщение
тогда
Да, конечно. спасибо.

0
D1zarm
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 5
17.05.2018, 16:25  [ТС] 13
Всем огромное спасибо за помощь, примите извинения за мое поведение крикливого, агрящегося школьника, просто день был отвратный...
0
17.05.2018, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2018, 16:25

E2451 Undefined symbol 'Edit1'
Не могу разобраться. В первый раз пишу программы на c++ Builder 6. Какой бы...

Ошибка E2451 Undefined symbol 'Form4'
Добрый день, программисты. Я новичок в программировании и у меня возник такой...

[C++ Error](248): E2451 Undefined symbol 'FFTPeacks'
Здравствуйте, пишу свой плеер с использованием bass.dll Завис на визуализации....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru