1樓:大野瘦子
這樣:#include
using namespace std;
class container //定義抽象類conyainer; //虛擬函式
virtual xx(){}; //虛擬函式virtual void ***() const =0; //純虛擬函式
private:
.......
};class ***x:public container //公用派生類***x
//對虛擬函式再定義
2樓:
c++程式:
#include
using namespace std;
const double pi = 3.14159;
//抽象類:容器類
class container
;//長方體類:繼承容器類
class cuboid : public containercuboid(double length, double width, double height) : length(length), width(width), height(height)
double area()
double volume()
};//球類:繼承容器類
class spherome : public containerspherome(double radius) : radius(radius)
double area()
double volume()
};void main()
{container *c;
c = new cuboid(2, 3, 4);
cout<<"長方體的表面積:"
執行測試:
長方體的表面積:52
長方體的體積:24
球體的表面積:50.2654
球體的體積:33.5103
3樓:節子不哭
給你一個相關的案例參考著寫,順便學習一下相關知識,這個虛基類是一個圖形類,子類繼承 並實現它的計算面積方法,
#ifndef graph_h
#define graph_h
#include
using namespace std;
class graph
;#endif
------------------------------#include "graph.h"
graph::graph()
----------------------------------rectangle::~rectangle(){cout<<"~rectangle()" 4樓: #include class container virtual double area(void) = 0; //表面積 virtual double volume(void) = 0; //體積 void print(void) ~cube(void){} double area(void) double volume(void) private: double side; };class cylinder : public container //圓柱體 ~cylindervoid){} double area(void) double volume(void) private: double radius; double height; };int main(void) c++中抽象類的定義 5樓:可以叫我表哥 定義:在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪物件的,如果一個類中沒有包含足夠的資訊來描繪一個具體的物件,這樣的類就是抽象類。 純虛擬函式是在基類中宣告的虛擬函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛擬函式的方法是在函式原型後加「=0」。[cpp] view plaincopyprint? virtual void funtion1()=0 virtual void funtion1()=0。 6樓:匿名使用者 含有純虛擬函式的類就是抽象類,它是一種特殊的類,為一個了類簇提供統一的介面。 抽象類無法例項化(無法定義一個抽象類的物件),只能通過繼承機制,生成抽象類的非抽象派生類,然後再例項化。 7樓:匿名使用者 含有純虛擬函式的 如class a c++ 定義一個抽象類cshape,包含純虛擬函式 getarea和純虛擬函式setdata,然後派生出三角形c********類、矩形 8樓:匿名使用者 #include using namespace std; class cshape; class c********:public cshape void setarea() bool operator>(const cshape& cbase) };class crect:public cshape void setarea() bool operator>(const cshape& cbase) };class ccircle:public cshape void setarea() bool operator>(const cshape& cbase) };int main(){ c******** ct; ct.setarea(); cout<<"c********面積:"< cr && ct > cc) cout<<"c********面積最大!"< ct && cr > cc) cout<<"crect面積最大!"< ct && cc > cr) cout<<"ccircle面積最大!"< 執行結果: 一個關於c++純虛擬函式和抽象類的題 9樓:匿名使用者 a的想法確實是錯了,選a沒問題,但c也錯了a:純虛擬函式在類中可以有具體的實現**,但是有純虛擬函式的類無法有具體的實現而已.純虛擬函式在派生類中必須被重新定義,但純虛擬函式的實現**還是可以被派生類用 baseclass:: thevirtualfn();這種方式呼叫. b:沒問題,具有純虛擬函式的類確實是抽象類. c:派生類有權力將從基類繼承來的純虛擬函式再次定義為純虛擬函式,也有權力完全不理它.因此派生類可以再次成為抽象類. d:沒問題.但實際上d也不夠周全,純虛擬函式的實現並非一定由派生類給出的,基類也可以給出一個實現,只不過外界能呼叫到的一定是派生類的實現而已. 10樓:匿名使用者 的確 答案錯了 該選c 對於a 純虛擬函式要在派生類來實現具體功能,但是一個抽象類可以派生多個類,所以沒有具體的實現,體現了c++多型性 11樓:匿名使用者 選c啊!!!ccccccccccccccccccccccccc 信我。我現在學c++,應該剛學完!信我!選c 定義一個抽象類shape,在其中說明一個純虛擬函式area()作為一個介面,用來計算圓形、三角形、正方形和長方形 12樓:pretty星空 class shape };class circle ;其他的依次類似定義 純虛擬函式就是在宣告虛擬函式時初始化為0,程式要自己動手思考寫…… 13樓:金鄉大學 要求那麼明確了,有什麼不明白?用多型 你的後面那個問題沒看懂什麼意思,先回答你前一個。我覺得還是好解決的,在抽象類裡定義個抽象屬性,比如public abstract abs this在子類裡,override,並return 子類的this那麼父類引用this也是一個例項,執行時就引用的是子類的例項。抽象類能否定義物件例項?抽象類是不... 定義抽象類和抽象方法 abstract 抽象類特點 1 不能初始化的類被叫做抽象類,它們只提供部分實現,但是另一個類可以繼承它並且能建立它們的例項 2 一個抽象類可以包含抽象和非抽象方法,當一個類繼承於抽象類,那麼這個派生類必須實現所有的的基類抽象方法 3 通過宣告派生類也為抽象,我們可以避免所有或... c 一 抽象類 抽象類是特殊的類,只是不能被例項化 除此以外,具有類的其他特性 重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能宣告於抽象類中,且不包含任何實現,派生類必須覆蓋它們。另外,抽象類可以派生自一個抽象類,可以覆蓋基類的抽象方法也可以不覆蓋,如果不覆蓋,則其派生類必須覆蓋它...定義了抽象類,但又需要抽象類的例項怎麼解決
c抽象類內是否要有方法的實現,C 抽象類可以有構造方法嗎,若是有如何實現及呼叫
C中抽象類和介面的區別,java中抽象類和介面的區別?