我正在尝试在Visual Studio 2015中创建控制台应用程序。
我有两个类:Node和Tree。
这是两者的标题:
#pragma once
#include "INode.h"
class CNode : INode
{
public:
CNode(int nValue, int nIndex);
virtual~CNode();
virtual const int GetValue(void) const;
virtual int GetIndex(void);
virtual int GetParentIndex(void);
virtual void SetIndex(int nIndex);
private:
const int m_nValue;
int m_nIndex;
int m_nParentIndex;
};
#pragma once
class INode
{
public:
INode(void);
virtual ~INode() = 0;
// Returns the value inside the node
virtual const int GetValue(void) const = 0;
// Returns the index of the node
virtual int GetIndex(void) = 0;
// Returns the index of the parent of the node
virtual int GetParentIndex(void) = 0;
// Sets the index of the node
virtual void SetIndex(int nIndex) = 0;
};
#pragma once
#include "INode.h"
class ITree
{
public:
ITree();
virtual ~ITree();
// Adds a node to the tree and sorts the tree
virtual void Insert(int nValue) = 0;
virtual void Insert(INode &node) = 0;
// Extracts the root node from the tree and sorts the tree
virtual INode & GetRoot(void) = 0;
};
但是在构建解决方案时会出现链接错误:
1> Node.obj:错误LNK2001:无法解析的外部符号“ public:__thiscall INode :: INode(void)”(?? 0INode @@ QAE @ XZ) 1> Node.obj:错误LNK2001:未解析的外部符号“ public:虚拟__thiscall INode ::〜INode(void)”(?? 1INode @@ UAE @ XZ) 1> Tree.obj:错误LNK2001:未解析的外部符号“ public:__thiscall ITree :: ITree(void)”(?? 0ITree @@ QAE @ XZ) 1> Tree.obj:错误LNK2001:未解析的外部符号“ public:虚拟__thiscall ITree ::〜ITree(void)”(?? 1ITree @@ UAE @ XZ)
当我继承接口类时,我只会得到链接错误。 当不继承接口时,该解决方案可以很好地构建。
如果这是重复的问题,请提前道歉。我似乎找不到与我的问题有关的现有问题。 预先感谢您的帮助。