嗨,我知道这似乎是一个非常愚蠢的问题,说实话,我迷失了造成这个对象错误的原因,并且真的可以使用一些帮助.
我有这个class:
class PriorityQueue {
public:
PriorityQueue(std::size_t max_nodes);
void insert(Key k);
void insert(KeyValuePair kv);
KeyValuePair min();
KeyValuePair removeMin();
bool isEmpty() const;
size_t size() const;
nlohmann::json JSON() const;
private:
void heapifyUp(size_t i);
void heapifyDown(size_t i);
void removeNode(size_t i);
Key getKey(size_t i);
std::vector<KeyValuePair> nodes_;
size_t max_size_;
size_t size_;
const static size_t ROOT = 1;
}; // class PriorityQueue
#endif // _PRIORITYQUEUE_H_
Run Code Online (Sandbox Code Playgroud)
一切都在相应的cpp文件中正确定义.现在我试图在一个包含两个标题的单独文件中调用它.
#include "priorityqueue.cpp"
#include "priorityqueue.h"
Run Code Online (Sandbox Code Playgroud)
但是在我的main()函数中,当我尝试将类调用为类似的对象时
PriorityQueue m;
Run Code Online (Sandbox Code Playgroud)
我收到了错误
no matching function for call to ‘PriorityQueue::PriorityQueue()’
PriorityQueue …Run Code Online (Sandbox Code Playgroud)