【发布时间】:2020-08-25 18:31:12
【问题描述】:
当我使用 LRUCache 类的构造函数的以下实现运行我的代码时,我收到 12 个编译器警告,如下所示:
同样的前六个警告再次重复。
struct Node{
Node* next;
Node* prev;
int value;
int key;
Node(Node* p, Node* n, int k, int val):prev(p),next(n),key(k),value(val){};
Node(int k, int val):prev(NULL),next(NULL),key(k),value(val){};
};
class Cache{
protected:
map<int,Node*> mp; //map the key to the node in the linked list
int cp; //capacity
Node* tail; // double linked list tail pointer
Node* head; // double linked list head pointer
virtual void set(int, int) = 0; //set function
virtual int get(int) = 0; //get function
};
class LRUCache : public Cache
{
private:
int count;
public:
LRUCache(int capacity)
{
cp = capacity;
tail = NULL;
head = NULL;
count = 0;
}
我的代码有什么问题??什么应该是正确的代码实现,以免收到任何警告??
【问题讨论】:
-
这是两个警告,每一个都是三行。
-
看起来你的构造函数的初始化列表与定义成员的顺序不同。
标签: c++ class linked-list compiler-warnings