[英]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.