我有默认构造函数但复制构造函数我遇到了问题。任何帮助。
enum Direction { front_to_back, back_to_front };
template <typename EType>
class Queue
{
private:
struct Node
{
EType Item;
unsigned Priority;
unsigned Identifier;
Node * Pred;
Node * Succ;
};
Node * Head; // Pointer to head of chain (front)
Node * Tail; // Pointer to tail of chain (back)
public:
// Initialize pqueue to empty
//
Queue();
// De-initialize pqueue
//
~Queue();
// Re-initialize pqueue to empty
//
void reset();
// Initialize pqueue using existing pqueue
答案 0 :(得分:2)
由于您正在使用原始指针,因此您需要禁用复制构造和分配以避免双重删除问题和内存泄漏。这可以通过以下方式完成:
private: // note that these are not implemented
Queue( const Queue& );
Queue& operator=( const Queue& );
或继承自boost::noncopyable
。