如何聲明抽象類?在C++中聲明抽象類
例如,我知道這是使用虛擬關鍵字,如:
class test{
public:
virtual void test()=0;
}
我的問題是我可以抽象測試類也是這樣嗎?如果不是,爲什麼和
virtual class test{
}
如何聲明抽象類?在C++中聲明抽象類
例如,我知道這是使用虛擬關鍵字,如:
class test{
public:
virtual void test()=0;
}
我的問題是我可以抽象測試類也是這樣嗎?如果不是,爲什麼和
virtual class test{
}
我的問題是如何能我抽象測試類也是這樣嗎?
不,你不能。根據定義,抽象類是至少包含一個純虛函數的類。
您的代碼:
class test
{
virtual void test()=0;
}
創建一個抽象類。
它包含一個或多個純虛函數:
virtual void test()=0;//is a pure virtual function/method
一個抽象類是一類定義,其中包含一個或多個純虛函數。
您不能創建抽象類的實例,因爲它不是一個完整的定義。
您的代碼:
virtual class test
{
}
是荒謬的,沒有上升到一個抽象類的定義,因爲它不包含一個或多個純虛函數,是一種不當使用「虛擬」關鍵字...
您可能會被「虛擬基類」這個引用「抽象類」語義的誤導性方式的話題所困惑。
製作抽象類的目的是將其繼承到派生類中,併爲純虛函數提供完整的定義。
抽象類可以包含許多完全定義的方法,但只有一個純粹的虛擬方法會使其抽象。簡單的例子是誤導。抽象類是常見的,並且通常是對(芭芭拉)Liskov替換原則引發的問題的「修正」。
Dr t
你爲什麼想要?沒有方法的課程絕對沒有意義。 – meagar
我想確認一下,我是否可以申報如上所述的抽象類 – Faceless
這是不可能的,你不應該這樣做。這個不成立。 – meagar