Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2011, 21:35   #1
clopcad
 
Регистрация: 23.11.2011
Сообщений: 5
Печаль Предопределение класса

Код:

class ReadThread : public TThread
{
 private:
        void __fastcall Printing();	
 protected:
        void __fastcall Execute();	
 public:
        __fastcall ReadThread(Port *AOwner); // ОШИБКА ОШИБКА!!!!
};


class Port
{

private:
// -----------------------всякое-------------------------------
protected:
   
    ReadThread *FReadThread;  //читающий поток

public:
        __fastcall Port();
        __fastcall ~Port();

};
Ну соответственно ошибка, т.к. класс определяется потом =)
Если вписать предопределени, как на коде снизу


Код:

class Port; // предопределение

class ReadThread : public TThread
{
 private:
        void __fastcall Printing();	
 protected:
        void __fastcall Execute();	
 public:
        __fastcall ReadThread(Port *AOwner); // ОШИБКА ОШИБКА!!!!
};


class Port
{

private:
// -----------------------всякое-------------------------------
protected:
   
    ReadThread *FReadThread;  //читающий поток

public:
        __fastcall Port();
        __fastcall ~Port();

};
то тогда в потоке я не могу обратиться ни к одному и членов (методов и тд) класса Port. помогите плиз
Огромное спасибо за любые советы.
clopcad вне форума Ответить с цитированием
Старый 01.12.2011, 22:17   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Проблема какая-то иная, т.к. второй вариант должен быть работоспособным.
Тексты ошибок чтоль приведите или скриншот с ними, если они не копируются в билдере.
pu4koff вне форума Ответить с цитированием
Старый 02.12.2011, 13:07   #3
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Сначала по первой ошибке. Вам совершенно не обязательно было предварительно объявлять класс именно таким образом

Код:
class Port; // предопределение
Вам было вполне достаточно в объявлении функции-члена класса написать


Код:
       __fastcall ReadThread( class Port *AOwner);
Что касается второй вашей ошибки, то вы не привели код. Не может ли это быть связано с тем, что вы пытаетесь вызвать защищенный метод класса Port?

Код:
protected:
   
    ReadThread *FReadThread;  //читающий поток
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 02.12.2011, 23:12   #4
clopcad
 
Регистрация: 23.11.2011
Сообщений: 5
По умолчанию

Спасибо, Сыроежка и pu4koff=)
Отдельное большое спасибо Сыроежке, все вроде компилится =) буду тестить =)
clopcad вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Предопределение класса clopcad C++ Builder 0 01.12.2011 21:14
Обращение к из одной функции класса к другой того же класса,не указывая к какому объекту она относиться zipwind C++ Builder 1 09.04.2011 17:18
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов Lanx Помощь студентам 0 06.04.2011 20:24
Предопределение iostrem в с++ Паыел Помощь студентам 1 26.10.2010 23:43