crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Классы, унаследованные от QT классов и friend-функции
Гость_GoogGod_*
сообщение 1.8.2008, 12:32
Сообщение #1





Гости








    


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

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

в обоих классах объявлена friend-функция
По идее она должна получать доступ к закрытым членам обоих классов (или я что-то не так понимаю?), но при компиляции я вижу что все члены классов для функции неведомы!
.\general.cpp(13) : error C2065: 'lstContacts' : undeclared identifier

.\general.cpp(23) : error C2065: 'tabContacts' : undeclared identifier
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 1.8.2008, 12:46
Сообщение #2





Гости








    


хедер в котором определены lstContacts, tabContacts подключи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 1.8.2008, 12:49
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


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

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

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

Она получает доступ к закрытым членам только этих классов, а не его родителей. Проверь, в каких классах объявлены указанные переменные!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 1.8.2008, 12:58
Сообщение #4





Гости








    


хедеры подключены в 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
Сообщение #5





Гости








    


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

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 20:45