Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Статический метод класса


Автор: mishapk 24.4.2013, 10:50
Всем привет!

Решил написать свой класс для работы с БД.
Цель: Написать классы, n-ое количество экземпляров класса должно работать одновременно с одной и той же БД и таблицей в ней.
Что бы экземпляры класса видели изменения сделанные своими сородичами нужно сделать один общий на всех Refresh. 
Я решил сделать этот рефреш через статический метод класса, но что то не получается. Подскажите как решить данный вопрос с обновлением?
Цитата
[C++ Error] Unit2.cpp(31): E2231 Member TRingup::TableX cannot be used without an object


Код
class TRingup
{
  public:
    TTable *TableX;
    TRingup();
   ~TRingup();
   static void RefreshDB();
};


Код
//---------Consructor-------------
 TRingup::TRingup()
{
   TableX= new TTable(Form1);
   TableX->DatabaseName="BCDEMOS";
   TableX->TableName="country.db";
   TableX->Active=true;
  return;
}

//-----------Destructor------------
 TRingup::~TRingup()
{
   delete TableX;
  return;
}

//----Refresh All DB---------------
 void TRingup::RefreshDB()
{
  TableX->Refresh();
}

Автор: Guinness 24.4.2013, 11:02
Указатель на TTable *TableX - также должен быть статическим, т.к. данный объект Вы вызываете в статической функции.

Автор: mishapk 24.4.2013, 13:09
Понятно статические к статическим.
Как тогда можно решить данную задачу?

Автор: baldina 24.4.2013, 13:34
примерно так http://codepad.org/a4EH2Tex

Автор: mishapk 24.4.2013, 14:09
Цитата(baldina @ 24.4.2013,  13:34)
примерно так http://codepad.org/a4EH2Tex

Пытаюсь разобраться. На 20 строке компилятор C++ Builder останавливается и говорит что потерялась точка с запятой.  

Автор: NoviceF 24.4.2013, 17:01
Цитата(mishapk @ 24.4.2013,  15:09)
Цитата(baldina @ 24.4.2013,  13:34)
примерно так http://codepad.org/a4EH2Tex

Пытаюсь разобраться. На 20 строке компилятор C++ Builder останавливается и говорит что потерялась точка с запятой.

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

Автор: baldina 24.4.2013, 17:32
либо списал непправильно, либо builder обновить надо.
или обработать напильником
http://borland.xportal.ru/forum/viewtopic.php?p=79242&sid=50ea8140bcf2782f33c4922daa397e72#79242

Автор: mes 25.4.2013, 18:36
Цитата(mishapk @  24.4.2013,  13:09 Найти цитируемый пост)
Пытаюсь разобраться. На 20 строке компилятор C++ Builder останавливается и говорит что потерялась точка с запятой.   

попробуй std::  перед auto_ptr smile

Автор: baldina 25.4.2013, 18:56
smile  возможно. мой косяк

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)