私はアプリケーションを閉じて、このクラスのデストラクタを実行すると、segフォールトに悩まされています。Segfault onデストラクタ
vlocationdropdowns.h:
#include <QWidget>
class VLocationDropDowns : public QWidget
{
Q_OBJECT
public:
VLocationDropDowns(QString activeText, QWidget *parent = 0);
~VLocationDropDowns();
};
がvlocationdropdowns.cpp:
VLocationDropDowns::VLocationDropDowns(QString activeText, QWidget *parent) :
QWidget()//I've also had this as QWidget(parent, Qt::Widget)
{
}
VLocationDropDowns::~VLocationDropDowns()
{
}
私は多分私がすべき(別のクラスのコンストラクタで(locationLineEditがポインタである)、このクラスのオブジェクトを作成しましたこのクラスはQWidgetから継承していると言う):
locationDropDowns = new VLocationDropDowns(randomString, this);
しかし、彼はそのクラスのデストラクタを実行しますdelete locationDropDowns;
私はsegfaultを取得します。
私はこれがおそらくノブの質問であることを認識しているので、私はメモリを管理するのが初めてです。私は vlocationdropdowns.cppでできることのすべての内容をコメントアウトしました。これを引き起こす原因は何ですか?私はこのためにしようとするだろう
マクロQ_OBJECTとは何ですか? –
Qtマクロです。私はそれがすべての信号とスロットのものを行うと思う - 正直言って私はあまりよく分からない、私はQtがそれを必要と知っている。私はこの問題をQtとしてタグ付けしていませんでした。なぜならQtはそれと関係がないと思うからです。私は間違っている可能性があります。 – jcuenod
あなたは '新しいVLocationLineEdit'を使っていますが、' VLocationDropDowns'のコードをいくつか見せてくれました。私たちに 'VLocationLineEdit'を見せてもらえませんでしたか? –