c++编译中出现‘vtable for ***未定义的引用解决办法

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";
}





华丽丽分割线-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值