Я получаю следующую ошибку от SonarQube для моего приложения C ++ в ~ TestQueue (); деструктор Явно определите отсутствующий оператор присваивания копии, чтобы он не был неявно предоставлен.
Чтобы устранить эту ошибку, я явно определил оператор присваивания:
Достаточно ли определить только оператор присваивания согласно сообщению об ошибке? или мне нужно также определить конструктор копирования, конструктор перемещения и оператор присваивания перемещения?
class TestMessage
{
public:
TestMessage();
~TestMessage() {}
};
class TestQueue
{
private:
std::mutex mutex_;
std::queue<TestMessage*> tstQueue;
public:
~TestQueue();
TestQueue();
TestQueue& operator= (const TestQueue &tQueue);
};
TestQueue::TestQueue()
{
}
TestQueue::~TestQueue()
{
if (!tstQueue.empty())
{
while (tstQueue.size())
{
tstQueue.pop();
}
}
}
TestQueue& TestQueue::operator = (const TestQueue &tQueue)
{
if (this == &tQueue)
return *this;
tstQueue = tQueue.tstQueue;
return *this;
}