Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача указателя класса в метод, как правильно передать указатель 
:(
    Опции темы
codxxx
  Дата 16.12.2007, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.11.2007

Репутация: нет
Всего: нет



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

Заголовок MyDate.h:

Код

 // Тут я объявляю указатель на класс
 TFileList *FilesList;


Модуль MyDate.cpp:
Код


 /*Вот сам метод в который я передаю указатель на класс TFileList */
TFileClass::ReadToFile(TFileList *FL)
{

 FL->Clear();   [color=red]// Тут вылетает ошибка, т.к. неправильный приходит указатель[/color]
 if (!infile)
  {
   ShowMessage("Неудалось открыть файл");
   CloseFile(false);
  }
 else
 {
    fseek(infile,0,0);
    char indif[16];
    int kol;
    fread(&indif,sizeof(indif),1,infile);
    if (strcmp(indif,"<DBM-STRUCTURE>")==0)
    {
       fread(&kol,sizeof(kol),1,infile);
       int inc1=1;
        do
        {
             struct SODBStr st;
             fread(&st,sizeof(st),1,infile);
             FL->CopyAdd(st);
             inc1++;
        } while (kol>=inc1);
     }
 }
 CloseFile(false);
}

//Вот метод из которого я передаю FilesList

 TFileClass::CloseFile(bool Sav)
{
   if (Sav)
   {

    SaveToFile(FilesList); //по идее должен передаться указатель в SaveToFile, но срабатывает не правильно
   }
  fclose(infile);
  infile=0;

};



Модуль Main.cpp:

Код

void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
   // Тут я его создаю
   FilesList = new TFileList();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::FormDestroy(TObject *Sender)
{
  // Следовательно очищаю
   delete FilesList;
   FilesList = NULL;
}



Подскажите в чем может быть проблема smile 

Это сообщение отредактировал(а) codxxx - 16.12.2007, 03:57
PM MAIL   Вверх
MAKCim
Дата 16.12.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



в MyDate.cpp должна быть доступна структура класса TFileList
а не просто тип указателя на него


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
codxxx
Дата 16.12.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.11.2007

Репутация: нет
Всего: нет



она в нем доступна

Код

#ifndef MyDataH
#define MyDataH
//---------------------------------------------------------------------------
#include <stdio.h>
#include <_str.h>
#include <vcl.h>
#include "MyStrClass.h"

class TFileList: public TList
{
  public:
   AllClear();
   CopyAdd(SODBStr St);
};

class TFileClass
{
  public:
    TFileClass()
    {
     fname = new char[256];
     mode = new char;
     strcpy(mode,"r+");
     strcpy(fname,"");
    }
    ~TFileClass()
    {
     if (infile) delete infile;
     delete [] fname;
     delete mode;
    }
   OpenFile(char *Name, char *Mode);
   CloseFile(bool Sav);
   //ReadFile();
   ReadToFile(TFileList *FL);
   SaveToFile(TFileList *FL);
  protected:
   char  *fname;
   char  *mode;
   FILE *infile;

};

TFileList *FilesList;

#endif

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.