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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QFile наследник. проблема с readData(char *data,qint64 maxlen)  (Прочитано 2856 раз)
ieroglif
Гость
« : Июнь 07, 2010, 09:40 »

есть некий закрытый класс, который юзает данные из любого иодевайса.
SomeOtherClosedClass->openSource( QIODevice *dev);
я ему хочу подсовывать свои данные и делаю наследника от QFile.
данные хочу подменять по мере их чтения самим закрытым классом.
переопределяю кучу read методов, отслеживаю что удобнее всего подменять на уровне readData(....).
соответсвенно делаю банальный код:
Код
C++ (Qt)
#ifndef QMYFILE_H
#define QMYFILE_H
 
#include <QFile>
 
class QMyFile : public QFile
{
public:
   QMyFile(const QString &file = "");
   qint64 readData(char *data, qint64 maxlen);
};
 
#endif // QMYFILE_H
 
 
#include "qmyfile.h"
 
QMyFile::QMyFile(const QString &file) : QFile(file)
{
}
 
qint64 QMyFile::readData(char *data, qint64 maxlen) {
   return QFile::read(data,maxlen);
}
 
 
вылетает с ошибками. оттрейсить и отследить не удаётся.
стоит только закоментировать readData - всё работает великолепно через такую "прослойку" из одного конструктора (что логично).

в общем, не понимаю где собака зарыта.
гугл не помогает.
Записан
BRE
Гость
« Ответ #1 : Июнь 07, 2010, 09:48 »

Метод read, использует readData.
У тебя рекурсия происходит.
Код
C++ (Qt)
qint64 QMyFile::readData(char *data, qint64 maxlen) {
   return QFile::readData(data,maxlen);
}
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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