Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Классы, унаследованные от QT классов и friend-функции

Автор: GoogGod 1.8.2008, 12:32

Друзья, неожиданно для меня столкнулся с такой проблеммой:

есть два класса, которые унаследованны от QWidget

в обоих классах объявлена friend-функция
По идее она должна получать доступ к закрытым членам обоих классов (или я что-то не так понимаю?), но при компиляции я вижу что все члены классов для функции неведомы!

.\general.cpp(13) : error C2065: 'lstContacts' : undeclared identifier

.\general.cpp(23) : error C2065: 'tabContacts' : undeclared identifier

Автор: Гость 1.8.2008, 12:46

хедер в котором определены lstContacts, tabContacts подключи.

Автор: AD 1.8.2008, 12:49

Цитата(GoogGod @ 1.8.2008, 13:32) *
Друзья, неожиданно для меня столкнулся с такой проблеммой:

есть два класса, которые унаследованны от QWidget

в обоих классах объявлена friend-функция
По идее она должна получать доступ к закрытым членам обоих классов (или я что-то не так понимаю?), но при компиляции я вижу что все члены классов для функции неведомы!

Она получает доступ к закрытым членам только этих классов, а не его родителей. Проверь, в каких классах объявлены указанные переменные!

Автор: Гость 1.8.2008, 12:58

хедеры подключены в general.h но попробовал и general.cpp подключить - бестолку

переменные объявлены в так:

class TalkWindow:public QWidget{
    Q_OBJECT
private:
...
    QTabWidget* tabContacts;
...
public:
friend void ContactStatusChangedFunction(QString contact, unsigned int newStatus);
...
};

class ContactList:public QWidget{
Q_OBJECT
private:
...
    QListWidget* lstContacts;
...
public:
    friend void ContactStatusChangedFunction(QString contact, unsigned int newStatus);
...
};

Автор: Гость 1.8.2008, 13:02

Ой, насчет хедеров не понял сразу))
Там все в порядке есть general.h там все классы объявлены и general.cpp там весь код

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)