c++编译中出现‘vtable for ***未定义的引用解决办法
2015-09-20 01:16
405 查看
class Brass:public AcctABC {<span style="font-family: Arial, Helvetica, sans-serif;"> </span> private: public: Brass(const std::string & s="Nullbody",long an=-1, double bal=0.0):AcctABC(s,an,bal){} virtual void Withdraw(double amt); virtual void ViewAcct()const; virtual ~Brass(){} };出现错误/tmp/ccytx9fA.o:在函数‘Brass::Brass(std::string const&, long, double)’中:
usebrass3.cpp:(.text._ZN5BrassC2ERKSsld[_ZN5BrassC5ERKSsld]+0x37):对‘vtable for Brass’未定义的引用
collect2: error: ld returned 1 exit status
关键字‘vtable for(虚函数)
解决办法查找相关虚函数时候已经写好功能函数。拿上面例子来说也就是说查找
virtual void Withdraw(double amt); virtual void ViewAcct()const;这两个函数是否已经申明。楼主找完以后发现是
virtual void Withdraw(double amt);这个函数没写补充结束问题得以解决
void Brass::Withdraw(double amt) { if(amt<0) cout<<"Withdrawal amount must be positive;" <<"withdrawal canceld.\n"; else if(amt<=Balance()) AcctABC::Withdraw(amt); else cout<<"Withdrawal amount of $:"<<amt<<" exceeds your balance.\n" <<"Withdrawal canceled.\n"; }
华丽丽分割线-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- C++11中的lambda表达式
- C语言算法训练1
- C++ 笔试题
- CPP-Calling constructors(调用构造函数)
- C++多线程编程
- CPP-Constructors
- C语言中堆和栈的区别
- 黑马程序员---C语言 内存分区
- 【编程题】-C++实现:判断字符串在末尾加一个字符,能否构成回文串
- 黑马程序员 ----C语言 结构体
- 【编程题】-C++实现:不同楼层同时丢球,求小球所经过的总距离
- 黑马程序员---C语言 冒泡排序
- C++ Primer Plus(第6版) 第3章编程练习
- 【编程题】-C++实现:五只猴子分桃
- 2、Windows C++编程约定
- C语言之控制流
- 关于堆上的内存释放
- c语言指针和引用实现原理深入分析
- c++ primer第五版(中文)习题答案 第十章第二节第二小节-写容器元素的算法
- C++ 指针,引用,普通变量之间的关系