错误LNK2001:仅当从接口继承时,未解析的外部符号

时间:2019-02-02 17:50:17

标签: visual-studio-2015 lnk2001

我正在尝试在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)

当我继承接口类时,我只会得到链接错误。 当不继承接口时,该解决方案可以很好地构建。

如果这是重复的问题,请提前道歉。我似乎找不到与我的问题有关的现有问题。 预先感谢您的帮助。

0 个答案:

没有答案