【发布时间】:2019-02-26 22:38:30
【问题描述】:
当我创建一个实现基类的虚函数的子类的对象时,我收到了这个错误。
错误 LNK2001:无法解析的外部符号“public: virtual void __thiscall CateringOrder::[Order]::calcTotals(void)”(?calcTotals@?QOrder@@CateringOrder@@UAEXXZ)
而我的代码是
class Order
{
private:
float SANDWICH_PRICE;
float TOCOS_PRICE;
public:
string customerType;
int NumberOfSandwiches;
int NumberOfTacos;
float SandwichSubtotal;
float Subtotal;
float TacosSubtotal;
float Total;
int TotalItems;
virtual void calcTotals()=0;
virtual ~Order(){};
};
//子类1
class ConsumerOrder:public Order{
private:
float SALES_TAX_RATE;
public:
string CustomerName;
float SalesTax;
void calcTotals() override;
string ToString();
};
// 子类 2
class CateringOrder: public Order
{
public:
string CustomerCode;
float DeliveryFee;
bool PreferredCustomer;
void Order::calcTotals(void) override;
string ToString();
};
//其他类
static class Validation
{
public:
bool CheckCustomerCode();
bool CheckCustomerType();
float CheckDeliveryFee();
int CheckItem();
};
现在,当我创建基类的对象时,它会在编译后显示错误。
bool Validation::CheckCustomerCode()
{
CateringOrder obj;
string tempCode = obj.CustomerCode;
return true;
}
【问题讨论】:
标签: c++ visual-c++ visual-studio-2012