ich habe gerade mein Qt Programm mit cppcheck 1.69 getestet und erhalte nun Warnungen:
Es handelt sich um die Konstruktoren der Dialoge. In der .h Datei steht nur:Zusammenfassung: Class 'view_a_Dialog' has a constructor with 1 argument that is not explicit.
Meldung: Class 'view_a_Dialog' has a constructor with 1 argument that is not explicit. Such constructors should in general be explicit for type safety reasons. Using the explicit keyword in the constructor means some mistakes when using the class can be avoided.
Code: Alles auswählen
class view_a_Dialog : public QDialog
{
Q_OBJECT
public:
view_a_Dialog(QWidget *parent);
protected:
void closeEvent(QCloseEvent *event);
[..]
private slots:
void cellSelected(const QModelIndex& index);
1. Ich brauche also nur "explicit view_a_Dialog(QWidget *parent);" schreiben um "sicherer" zu sein? (Ja, ich habe gesehen, dass einige von Euch so ähnlichen Code hier geposted haben. Ich habe so etwas nur nie in den Qt-Büchern gesehen, die ich gelesen habe und wundere mich, warum es dort nie gemacht wurde. Gibt es evtl. einen gefährlichen Nachteil?)
2. Warum sollte man dann nicht analog vor "closeEvent" und "cellSelected" ebenfalls explizit schreiben?