【发布时间】:2017-10-20 13:21:22
【问题描述】:
我在将互斥锁传递给我的班级时遇到问题。我有一个名为Test 的类,其中有一个名为m_Mutex 的成员变量。在构造函数中我想把参数mutex传给m_Mutex。
我的班级:
#include <mutex>
class Test
{
public:
Test(mutex &mtx) :
m_Mutex(mtx)
{
}
private:
mutex m_Mutex;
};
我的主要:
int main()
{
mutex mutex1;
Test t(mutex1);
return 0;
}
错误:
函数“std::mutex::mutex(const std::mutex &)”(在第 88 行声明 “c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\mutex") 不能被引用——它是一个被删除的函数
为什么我会收到此错误,我该如何解决我能够通过互斥锁的问题?
【问题讨论】:
-
听起来像是 XY 问题,为什么首先需要传递互斥锁?