簡體   English   中英

是否可以在不同的類中實現類成員函數

[英]Is it possible to implement a class member functions in a different class

假設我有以下代碼。 是否可以從類 math 派生類 add 並聲明函數 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}

}

是否可以從類 math 派生類 add 並聲明函數 sum,然后從 add 派生一個名為 addNumbers 的類,它實現了函數 sum。

不。

sum以您擁有的方式聲明,則必須在add中實現它。 否則,您應該看到鏈接器錯誤。

如果add沒有足夠的信息來實現sum ,則不要在add聲明sum 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)
      }

};

您可以在addNumbers實現sum函數。 sum函數實際上是在數學課中聲明的。 但是你沒有在add定義sum函數,但它是 virtual 。 因此,您可以在addNumbers定義/實現sum ,它將被add Class 中的先前聲明覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM