我们说我有以下代码。是否可以从类math派生类添加并声明函数sum,然后从add addNumbers派生一个类来实现函数sum。
class math
{
public:
virtual int sum() = 0;
}
class add : public math
{
public:
int sum();
}
class addNumbers : public add
{
private:
int a, b;
public:
add::sum()
{ a + b}
}
答案 0 :(得分:1)
是否可以从类math派生类添加并声明函数sum,然后从add addNumbers派生一个类来实现函数sum。
没有
sum
必须在add
中实现,如果按照您的方式声明它。否则,您应该看到链接器错误。
如果add
没有足够的信息来实施sum
,请不要在sum
中声明add
。在addNumbers
中声明并定义它。
更新,以回应OP的评论
使用
class add : public math
{
// Add whatever is needed for this class
}
class addNumbers : public add
{
private:
int a, b;
public:
int sum()
{
return (a + b)
}
};
答案 1 :(得分:0)
您可以在sum
中实施addNumbers
功能。
sum
函数虚拟地在数学类中声明。但是你没有在sum
虚拟地定义add
函数,但它是虚拟的。因此,您可以在sum
中定义/实施addNumbers
,它将覆盖add
类中的先前声明。