加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 每当我使用纯虚函数时,“错误:未解析的外部符号”

发布时间:2020-12-16 10:43:45 所属栏目:百科 来源:网络整理
导读:我觉得我做的事情非常愚蠢,但我根本无法弄清楚我的代码有什么问题.我甚至制作了代码的超级简化版本,但仍然出现错误: #include iostreamusing namespace std;class c1{public: c1(){} ~c1(){} virtual int add(int a,int b);private:protected:};class c2 :
我觉得我做的事情非常愚蠢,但我根本无法弄清楚我的代码有什么问题.我甚至制作了代码的超级简化版本,但仍然出现错误:

#include <iostream>

using namespace std;

class c1{
public:
    c1(){}
    ~c1(){}

    virtual int add(int a,int b);

private:
protected:


};

class c2 : c1{
public:
    c2(){}
    ~c2(){}

    int add(int a,int b){
        return a+b;
    }

};

int main(){

    c2 c;
    c.add(5,6);

}

任何人都可以发现我确信有史以来最愚蠢的错误吗?

这是确切的错误消息:

1>main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall c1::add(int,int)" (?add@c1@@UAEHHH@Z)

解决方法

virtual int add(int a,int b);

这不是纯虚函数的声明.它只是一个虚函数的声明.它没有定义,这就是你得到错误的原因.

virtual int add(int a,int b) = 0;

这是纯虚函数的声明.它不需要定义,这就是为什么不会得到错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读