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; 这是纯虚函数的声明.它不需要定义,这就是为什么不会得到错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |