подскажи плз, чот я не пойму почему так происходит :
есть у меня класс, который я описал в отдельном файлике, и так как мне нужно чтобы объект этого класса был виден везде я в этом же заголовочном сделал указатель на объект, выглядит ето так
| Код | //---------------------------------------------------------------------------
#ifndef CanalDescH #define CanalDescH
//---------------------------------------------------------------------------
class TCanal { private: int Length; //OX int Height; //OY int Width; //OZ double Lambda; // heat conductivity public: TCanal(int,int,int); TCanal(int,int,int,double); void Draw(); int GetLength(); int GetHeight(); int GetWidth(); double GetLambda();
__property int length = {read = GetLength}; __property int height = {read = GetHeight}; __property int width = {read = GetWidth}; __property double lambda = {read = GetLambda};
};
TCanal *Canal;
#endif
|
так вот када я обращаюсь к методу GetLength(); то при выполнении return Length;выдает ошибку Access violation at adress 00403822 in module "Name.exe". Read of adress 00000000
плюс ко всему выдает ворнинги что символ Canal определен во всех обжектовских файлах приложения.
Вот тут у меня инициализируется сам обект
| Код | void __fastcall TfrmSCMain::btnCreateCanalClick(TObject *Sender) { int l=StrToInt(edtLength->Text); int h=StrToInt(edtHeight->Text); int w=StrToInt(edtWidth->Text); Canal = new TCanal (l,h,w); frmSC3D->Enabled=True; Canal->Draw();
|
и вот в функции Draw и случаеца ета лабуда при вызове ГетЛенгс
Добавлено @ 15:05 еще пробовал троссировкой выловить ошибку, получилось что в вотчах показывается содержимое класса Канал, а когда переходит к ГетЛенгс, то там переменная Ленгс в вотчах отображается как ???? а Канал.Ленгс - как нормальное число |