为什么要在 C++ 类或 C++11 或更高版本中的结构中重载 () 运算符?据我所知,当您想要将类或结构等对象传递到 std::thread 并通过可调用类型启动一个带有数据包的新线程时,这些运算符会被重载。但除此之外,为什么还要重载 () 运算符?你不能简单地在类或结构的构造函数中做同样的事情吗?
为什么使用
struct MyCallableStruct{
void operator() () {
dosomething();
}
}
你什么时候可以做
struct MyCallableStruct{
MyCallableStruct() { dosomething(); }
}