我想通过对象引用传递函数的参数。如果我这样写代码:
#include <boost\thread\thread.hpp>
class Data
{
public:
Data();
~Data();
void func(boost::mutex &mut);
private:
boost::condition_variable condData;
boost::mutex mutData;
};
void Data::func(boost::mutex &mut)
{
Data* data = this;
data->mutData = mut;// Here a syntax error
}
这里data->mutData = mut;
显示错误
错误:等号上的“boost::mutex &boost::mutex:.Operator=(boost::mutex &)”无法访问
。
如何解决这个问题?
最佳答案
根据设计,无法复制或分配互斥量。
允许这样做会使使用互斥体保护某些资源的想法失效。如果每个人都有自己的互斥锁拷贝,共享资源就不再是单一的锁。
关于c++ - 如何通过对象引用传递函数的参数(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114206/