値渡しオブジェクトの構築と仮想メソッドについて質問があります。
次のような仮想メソッドがあります。
typedef boost::function1<void, void*> Task
class ITaskPool
{
//......
virtual AddTask(Task task) = 0;
};
そして、次のような実装
class TaskPool : public ITaskPool
{
//......
AddTask(Task task);
};
このように使用すると;
void MyFunc(void* arg)
{
}
int main()
{
TaskPool tp;
tp.AddTask(&MyFunc);
}
Task オブジェクトは、仮想メソッドに渡されるときと派生クラスのメソッドに渡されるときに 2 回作成されますか?
ありがとう