0

全体像としては、Bada で単一の UI コントロール (ラベル) を持つフレーム ベースのアプリケーションを作成したいと考えています。ここまでは順調ですが、選択した数を表示し、X 秒ごとに繰り返しデクリメントしたいと考えています。スレッドは問題ありませんが (私はそう思います)、ラベル ポインターをクラス変数として渡すことができません。

//MyTask.h 
//...
result Construct(Label* pLabel, int seconds);
//...
Label* pLabel;

//MyTask.cpp
//...
result
MyTask::Construct(Label* pLabel, int seconds) {
 result r = E_SUCCESS;
 r = Thread::Construct(THREAD_TYPE_EVENT_DRIVEN);
 AppLog("I'm in da constructor");
 this->pLabel = pLabel;
 this->seconds = seconds;

 return r;
}
//...

bool
Threading::OnAppInitializing(AppRegistry& appRegistry)
{
// ...

    Label* pLabel = new Label();
 pLabel = static_cast<Label*>(pForm->GetControl(L"IDC_LABEL1"));
 MyTask* task = new MyTask();
 task->Construct(&pLabel); // HERE IS THE ERROR no matching for Label**
 task->Start();

// ...
}

問題は、コンビナトリクスで知られている*、&、および単純なpLabelのすべての可能な組み合わせを試したことです...

これを取得することはそれほど重要ではありません (トレーニングのためだけです) が、問題を解決する方法を理解したいと思っています。

4

2 に答える 2

0

やってみました:

task->Construct(pLabel, 0);

そして、MyTask::Construct の 2 番目のパラメーターが欠落していることを指摘したいと思います。

于 2010-07-20T14:33:48.903 に答える
0

いいえ、していません。2 番目のパラメーターがわかりません。しかし、この問題は解決されています。変数を宣言する場合Object* __pVar、コンストラクターは である必要がありInit(Object* pVar)、インスタンス変数を初期化したい場合は、次のように記述します。

Object* pVar = new Object();
MyClass* mClass = new MyClass();
mClass->Construct(pVar);
于 2010-07-20T20:42:35.277 に答える