salut,

je débute en C++ et j'ai pas bien compris l'héritage de classe.
Je vois ce que c'est pour en faire souvent en php, mais en c j'ai des petit problème.

j'essaye d'étendre cetet classe :
dont le constructeur est :http://qt.developpez.com/doc/latest/qdockwidget.html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
QDockWidget ( const QString & title, QWidget * parent = 0, Qt::WindowFlags flags = 0 )
 
QDockWidget ( QWidget * parent = 0, Qt::WindowFlags flags = 0 )
voici mon entete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef DOCKEXPLORER_H_INCLUDED
#define DOCKEXPLORER_H_INCLUDED
 
#include <QtGui/QDockWidget>
#include <QtGui/QWidget>
#include <QtCore/QString>
 
class DockExplorer : public QDockWidget
{
    public:
        //DockExplorer(const QString &title, QWidget *parent = 0);
        DockExplorer(const QString &title, QWidget *parent = 0);
};
 
#endif // DOCKEXPLORER_H_INCLUDED
et ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#include "DockExplorer.h"
 
DockExplorer::DockExplorer(const QString &title, QWidget *parent = 0):QDockWidget(&title,parent)
{
    //setWindowTitle(trUtf8("Exploreur"))
}
ça se résume au strict minimum, mais en théorie ma classe DockExplorer je devrais hérité de toutes les méthode de QDockWidget et donc avoir le même comportement.

mais j'ai une erreur de compilation et je comprends pas ! Si ce n'est que j'ai du raté un truc sur le tuto d'héritage entre class!

euh voici l'erreur de compilation :
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.4.0/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtCore -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include/QtGui -I/usr/local/Trolltech/Qt-4.4.0/include -I. -I. -I. -o DockExplorer.o DockExplorer.cpp
DockExplorer.cpp:3: erreur: default argument given for parameter 2 of «DockExplorer:ockExplorer(const QString&, QWidget*)»
DockExplorer.h:12: erreur: after previous specification in «DockExplorer:ockExplorer(const QString&, QWidget*)»
DockExplorer.cpp: In constructor «DockExplorer:ockExplorer(const QString&, QWidget*)»:
DockExplorer.cpp:3: erreur: no matching function for call to «QDockWidget::QDockWidget(const QString*, QWidget*&)»
/usr/local/Trolltech/Qt-4.4.0/include/QtGui/qdockwidget.h:130: note: candidats sont: QDockWidget::QDockWidget(const QDockWidget&)
/usr/local/Trolltech/Qt-4.4.0/include/QtGui/qdockwidget.h:75: note: QDockWidget::QDockWidget(QWidget*, Qt::WindowFlags)
/usr/local/Trolltech/Qt-4.4.0/include/QtGui/qdockwidget.h:74: note: QDockWidget::QDockWidget(const QString&, QWidget*, Qt::WindowFlags)
make: *** [DockExplorer.o] Erreur 1