Russian Qt Forum
Ноябрь 23, 2024, 03:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не приравнивает указатели  (Прочитано 3222 раз)
phpCoder
Гость
« : Апрель 06, 2015, 12:02 »

Есть код:
Код
C++ (Qt)
class NumericalValuesFormatter : public QDialog
{
   Q_OBJECT
   friend class RegExpEdit;
   class RegExpEdit;
public:
   explicit NumericalValuesFormatter(QWidget *parent = 0);
   ~NumericalValuesFormatter() {}
private:
   ...
   RegExpEdit *lastEdit;
   ...
};
 
class RegExpEdit : public QLineEdit
{
   Q_OBJECT
public:
   explicit RegExpEdit(NumericalValuesFormatter *parent) : QLineEdit(parent), _dialog(parent) {}
   ~RegExpEdit() {}
private:
   NumericalValuesFormatter *_dialog;
protected:
   void focusInEvent(QFocusEvent)
   {
       _dialog->lastEdit = this; //че не так?
       _dialog->isTable = false;
   }
};

При компиляции парит:
Код:
ошибка: cannot convert 'RegExpEdit*' to 'NumericalValuesFormatter::RegExpEdit*' in assignment
     void focusInEvent(QFocusEvent) { _dialog->lastEdit = this; _dialog->isTable = false; }

Что делать?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Апрель 06, 2015, 12:07 »

Уберите из класса Numerical... строку:
class RegExpEdit;

перенесите её перед объявлением класса.
« Последнее редактирование: Апрель 06, 2015, 12:09 от Old » Записан
phpCoder
Гость
« Ответ #2 : Апрель 06, 2015, 12:21 »

Спасибо, работает.
Странно, в других классах конструкция
Код:
class Trololo;
работает и в приватной секции.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Апрель 06, 2015, 12:26 »

Оно всегда работает одинаково. Улыбающийся
Внутри класса вы определяет указатель на
NumericalValuesFormatter::RegExpEdit

а присвоить пытаетесь адрес объекта
RegExpEdit

Они немного отличаются. Улыбающийся
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Апрель 06, 2015, 12:50 »

Они немного отличаются. Улыбающийся
Точнее говоря, один из них (что внутри NumericalValuesFormatter) не имеет членов вообще Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.071 секунд. Запросов: 22.