【问题标题】:error LNK2020: unresolved token (06000002) in Visual C++错误 LNK2020:Visual C++ 中未解析的令牌 (06000002)
【发布时间】:2013-03-27 08:26:17
【问题描述】:

我正在 C++/CLI 中创建一个新的抽象类,但遇到了一个奇怪的错误。有很多类似的问题,但没有一个答案可以帮助我。

在这个新课程中,我收到以下错误:

error LNK2020: unresolved token (06000002) Foo::execute

这是 h 文件:

#pragma once
using namespace System::IO::Ports;
using namespace System;

public ref class Foo
{
protected:
    SerialPort^ port;
public:
    Foo(SerialPort^ sp);
    virtual array<Byte>^ execute();
};

这是 cpp 文件:

#include "StdAfx.h"
#include "Foo.h"

Foo::Foo(SerialPort^ sp)
{
    this->port = sp;
}

请注意,当我注释掉 virtual array&lt;Byte&gt;^ execute(); 行时,一切都会完美编译。此外,当我删除 virtual 修饰符并在 cpp 文件中添加 execute() 的实现时,它也可以正常工作。

【问题讨论】:

    标签: c++ visual-c++ compiler-errors c++-cli


    【解决方案1】:

    你自己已经给出了答案:

    此外,当我删除 virtual 修饰符并在 cpp 文件中添加 execute() 的实现时,它也可以正常工作。

    您在标头中声明了方法execute,但缺少它的实现。这正是链接器错误告诉您的内容。 在这种情况下,virtual 的声明无关紧要。

    如果您想创建一个抽象类,您可以在网上的大量文章中找到更多详细信息(例如Wikibooks: Abstract Classes

    【讨论】:

    • 谢谢。当我有足够的声誉时,我会接受这个答案并投票赞成。 :-)
    【解决方案2】:

    您必须实现该方法或从标头中删除声明。 (在这种情况下,虚拟关键字无关紧要)

    如果您有任何问题,请提出问题。

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多