是否可以在不同的类中实现类成员函数

时间:2016-04-26 19:26:39

标签: c++

我们说我有以下代码。是否可以从类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}

}

2 个答案:

答案 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类中的先前声明。