1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 45

Не корректная работа класса. Access violation.

19.01.2012, 14:13. Показов 1773. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <stdio>
#include <string>
#include <sysmac.h>
 
#include "Unit1.h"
#include "Unit2.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
  class Air
   {
    private:
      bool _pass;
      int _val;
      String _shipment, _arrival;
    public:
     void SetVal(int val )
     {
        _val = val;
     }
     int GetVal()
       {
       return _val;
       };
     void SetShipment (String shipment)
       {
         _shipment = shipment;
       };
     String GetShipment()
       {
         return _shipment;
         };
     void SetArrival (String arrival)
        {
          _arrival = arrival;
        };
     String GetArrival()
        {
          return  _arrival;
        };
     void SetPass( bool pass)
       {
         _pass = pass;
       };
     bool GetPass()
        {
          return _pass;
        };
       };
 
 
    
 
      Air *air;
  
//----------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Air * air = (Air *) new Air;
 
     try
     {
   if(RadioButton1->Checked)
    {
   air->SetShipment(Edit1->Text);
   air->SetArrival(Edit2->Text);
 
     Edit1->Clear();
     Edit2->Clear();
     Edit3->Clear();
     Edit4->Clear();
 
     if (RadioButton2->Checked)
     {
       air->SetShipment(Edit1->Text);
       air->SetArrival(Edit2->Text);
       air->SetVal(StrToInt(Edit3->Text));
     Edit1->Clear();
     Edit2->Clear();
     Edit3->Clear();
     Edit5->Clear();
     Edit6->Clear();
      }
      }
    else
      {
          ShowMessage("Заполните все поля");
      }
  }
  catch(...)
  {
  ShowMessage("");
  }
 
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
  Edit4->Visible = true;
  Label4->Visible = true;
  Edit5->Visible = false;
  Label5->Visible = false;
  Edit6->Visible = false;
  Label6->Visible = false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
  Edit4->Visible = false;
  Label4->Visible = false;
  Edit5->Visible = true;
  Label5->Visible = true;
  Edit6->Visible = true;
  Label6->Visible = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  Edit7->Text = air->GetShipment();
}
Если я создаю экземпляр класса так "Air air;" то все работает, а если как написано выше при нажатии Button1 всё нормально, а при при нажатии Button4 выходит сообщение об ошибке "Project Projectl .exe raised exception class EAccessViolation with message 'Access violation at address 00402DD3 in module 'Projectl .exe'. Read of address 00000008'. Process stopped. Use Step or Run to continue."
скажите пожалуста где я ошибся?!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2012, 14:13
Ответы с готовыми решениями:

Access violation и переменная класса
Описание класса: interface type TUser=class public Error: boolean; constructor Create(UserId: string); ...

Ошибка Access Violation при использовании vector внутри класса
Проблема в следующем: имеется пользовательский класс. Три поля в классе - векторы, один из которых двумерный. Первое создание экземпляра...

Ошибка Access Violation при попытке создать объект класса. В чем может быть проблема?
Код класса unit Unit2; interface uses SysUtils; type ABCMatrix = class private

22
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 45
20.01.2012, 19:16  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо буду в этом разбираться и пробовать. Если что напишу.

Добавлено через 2 минуты
Да мне нужна чистой воды динамика,просто пишу только по учебе отдельно в чем то разбираться пока времени нет. Поэтому некоторые даже простые вещи не могу сразу сообразить!

Добавлено через 12 минут
Всем кто помог спасибо, я во всем разобрался))) Сегодня допишу курсач. Если кому понадобится консультация в электронике ищите меня в скайпе под таким же ником!

Добавлено через 4 часа 2 минуты
опять у меня не все получается)))
C++
1
TPassengers * pas = new TPassengers[index]
переменная index изменилась как мне изменить размер массива. Что то у меня это с косяками выходит.
0
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
20.01.2012, 20:00
Цитата Сообщение от zuranika Посмотреть сообщение
переменная index изменилась как мне изменить размер массива. Что то у меня это с косяками выходит.
Есть разные пути реализации, но постоянные сдвиги в массиве из классов не самая удачная мысль, для большинства задач благоразумней задать максимум, но все это зависит от задачи. Объясните, как стоит задача и как вы ее хотите решить.
1
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 45
20.01.2012, 20:08  [ТС]
Задача стоит в том что "Объекты классов динамические(выдержка из задания)" я бы хотел для начала задать минимальный размер и по мере внесения данных его увеличивать на 1. То есть при нажатии на кнопку массив увеличивается на 1 и заполняеттся. Нашел на форуме пару тем, но что то пока не могу сделать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2012, 20:08

Ошибка доступа access violation: почему класс-наследник не видит protected данные-члены класса-родителя?
Подскажите есть базовый класс в разделе protected разместил переменную, которая по идее должна быть видна всем наследникам. Но при запуске...

Virtual Dub, ошибка во время рендеринга: An out-of-bounds memory access (access violation)
Virtual Dub ошибка во время рендинга, осталось совесем чуть чуть и тут ошыбка. Но так не со всеми видео,а с некоторыми.

Не корректная работа программы
Здравствуйте ! Проблема заключается в меню &quot;Чтение базы данных&quot;. Приходится по 2 раза вводить свой запрос, при чем первый полностью...

Не корректная работа кода
Всем привет! Возникла проблема с данным кодом,не могу понять почему когда ставлю число меньше -5 пишет что функция не существует , хотя...

Не корректная работа виды 7
Выдает ошибку &quot;не правильно задан путь&quot; и т.п Не является приложением вин 32 &quot;На многие проги выдает Обновление не устанавливается . ...


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

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

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru