0

タイプのクラスメンバーがありQStringListます。このクラスがインスタンス化されると、インスタンスは要素を含まないnexようなものになると推測しました。ユーザー の操作でこれを埋める関数があります。ただし、関数呼び出し時にクラスメンバーが存在しないことがデバッガーでわかります。それは一体何なのでしょうか?ここで不足している可能性のあるを初期化する方法はありますか?QStringLsit
QStringListQListString

4

1 に答える 1

1

QStringListオブジェクトの作成時に自動的に初期化する必要があります(ポインターでない限り)。デバッガーの動作については、次の 2 つの説明が考えられます。

  • オブジェクト(関数を呼び出すオブジェクト)は、関数呼び出しの前に作成されません。thisこれは、関数が入力されたときにポインターが無効であることを意味します。これは、クラスへの初期化されていないポインターで関数を呼び出す場合に当てはまります。
  • デバッガーはQStringListメンバーを正しく表示しません。
  • メンバーが型QStringList*(ポインター) の場合、オブジェクトの作成時に自動的に初期化されません。list = new QStringList();次に、コンストラクターで行う必要があります。しかし、ここで文字列リストへのポインタが必要になるとは思えません。
于 2012-05-22T11:49:36.503 に答える