1. 程式人生 > >關於C++抽象類建立物件的問題

關於C++抽象類建立物件的問題

 抽象類是無法建立物件、但可以定義指標、該指標可以指向它的派生類,進而實現多型性,也可以通過引用。

class A{
public:
    virtual int getA() = 0;
};


class B : public A
{
public:
   virtual int getA();
};


class C : public A
{
public:
   virtual int getA();
};


int B::getA()
{
   return 3;
}


int C::getA()
{
   return 4;
}


int main()
{
   B b;
   C c;
   A *a[2];
   a[0] = &b;
   a[1] = &c;
   cout<<"b.a="<<a[0]->getA()<<endl;
   cout<<"c.a="<<a[1]->getA()<<endl;


   A &a1 = b;
   A &a2 = c;
   cout<<"b.a ="<<a1.getA()<<endl;
   cout<<"c.a ="<<a2.getA()<<endl;
   return 0;
}

相關推薦

關於C++抽象建立物件的問題

 抽象類是無法建立物件、但可以定義指標、該指標可以指向它的派生類,進而實現多型性,也可以通過引用。 class A{ public:     virtual int getA() = 0; }; class B : public A { public:    virtual

通過介面抽象建立物件

前言 首先宣告,用介面或者抽象類例項化一個物件是不可能的,錯誤的。 介面、抽象類實現注意點 Interface 屬性預設都是 public static final 方法預設都是 public abstract 都不用顯示宣告 抽象類 至少

C# 抽象抽象方法

tail 出現 keyword bstr pos term string enter net 首先,在學習抽象方法的時候,我們必須清楚在C#中為什麽會存在抽象方法,或者說為什麽需要抽象方法。 我們知道,接口可以包含方法的申明和屬性,但是方法中不包含代碼,實現這個接口的方

C++語言學習(十五)——C++抽象與接口

eight close send 都是 () 實例 amp 定義類 esp C++語言學習(十五)——C++抽象類與接口 一、抽象類與接口 1、抽象類簡介 面向對象的抽象類用於表示現實世界的抽象概念,是一種只能定義類型,不能產生對象的類(不能實例化),只能被繼承並被重寫相關

24.C++- 抽象(存虛函數)、接口、多重繼承

通過 https virtual eache 類的成員 似的 什麽 lan 們的 什麽是抽象類 用來表示現實世界中的抽象概念 是一種只能定義類型,而不能產生對象的類 只能被子類繼承,且抽象類的相關成員函數沒有完整的體現,用來被子類重寫. 比如圖形(Shape)類, 就是

1、【C++】&物件/建構函式/拷貝建構函式/操作符過載/解構函式

一、C++類 & 物件     C++ 在 C 語言的基礎上增加了面向物件程式設計,C++ 支援面向物件程式設計。類是 C++ 的核心特性,通常被稱為使用者定義的型別。     類用於指定物件的形式,它包含了資料表示法和用於處理資料的方法。類中的資料和方法稱為類的成員。函式在

C++程式設計-物件

類 面向物件的程式設計方法,能夠較好結構化設計方法中遇到的問題。 面向物件的程式 = 類 + 類 + …+ 類 1、面向物件的程式設計方法: 將某類客觀事物共同特點(屬性)歸納出來,形成一個資料結構(可以用多個變數描述事物的屬性); 將這類事物所能進行的行為也歸納出

c++採用new建立物件陣列

object *p = new object[3]; p[0] =  p[1] =  上述情況是否需要定義建構函式? new object不對物件進行初始化。 new object(parameters)顯示呼叫建構函式初始化物件。 如果沒有定義預設建構函

定義,建立物件

定義一個類,格式如下: class 類名: 方法列表 demo:定義一個Cat類 #定義類 class Cat: # 方法 def eat(self): print(“貓在吃魚…”) def drink(self): print("貓在喝可樂...") 說明: 定義

c++:物件,封裝,訪問限定符,預設成員函式

到底什麼是類?什麼是物件?          類是一個抽象的概念,它不存在於現實中的時間/空間裡,類只是為所有的物件定義了抽象的屬性與行為。          類是一個靜態的概念,類本身不攜帶任何

C#中物件的關係,以及方法申明的static修飾符

C#中,類(class)的書寫,是class 類名稱:例如class Program這就是一個Program類,類理解起來就是同一類事物,具有同樣的特性,就如同我們常說的人類,鳥類,這樣具有相同特性和行為的一類事物的統稱,在程式設計中這種特性我們可以把它用一些方法功能來表示,例如程式:

C++:物件(最終)

前兩篇關於類與物件的部落格,都是類與物件中不可或缺的物件,這篇就是在前兩篇的基礎上,再對類與物件進行補充。 一.簡識深淺拷貝 當我們進行拷貝造作函式,或者賦值運算子過載的時候,我們不給出這兩個函式,編譯器就會預設自動生成,預設對類進行位拷貝(按照基本型別進行值的拷貝)。 那麼編譯器給的到

C++:初識物件

在C++中,結構體不僅可以定義變數時也可以定義函式。 一.類的引入 struct student { int _age; char _name[20]; char _gender[3]; void init(int age, char* name, char* gender) {

C#】——物件

一、類和物件的區別 類:類是模型,確定物件將會擁有的特徵(屬性)和行為(方法),類是物件的型別。 類是抽象的概念,僅僅是模板,比如說“人”類 物件是一個能看得到、摸得到的具體實體 物件可以叫做類的例項(Instance) 類不佔記憶體,物件才佔記憶體 二、類的定

c# 抽象抽象方法使用(abstract)

  入行一年多,在這個IT行業,開發技術主要使用的是.NET,而對應使用的高階語言自然就是c#了。從2017年7月入職後,在平時的工作過程中,只記得使用一些方法去完成邏輯功能,而很少去深究一些語法特性,特別是沒有去關注為什麼會去使用這些語法。現在,入職一家新公司,那就從現在開始,一有空就做一些學習記錄,同時這

c++基礎——物件

1、class的構成 class 類名{     public://公有成員      函式1;     變數1;      ……           private://私有成員      函式2;     變數2;      ……      }; #includ

C#抽象/虛方法

多型:讓一個物件能夠表現出多種狀態(型別) 實現多型的三種手段:1.虛方法 2.抽象類 3.介面 抽象類定義:當父類中的方法不知道如何去實現的時候,可以考慮將父類寫成抽象類,將方法寫成抽象方法. 關鍵字:abstract public abstract class

C++:物件(上)

1.類與物件的初步認知 ç語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。 C ++是基於面向物件的,關注的是物件,將一件事情拆分成不同的物件,靠物件之間的互動完成。 2.類的引入 Ç語言中,結構體中只能定義變數,在C +

C++中 物件的定義,的作用域,中成員,this指標

概要 這篇文章主要內容是關於類與物件,類的定義,類的作用域,類中成員,this指標。寫的比較粗,後期有時間再改。 什麼是類? 對於類,我認為最早的發言人還是亞里士多德。他歸納事物的方法就是這是什麼(屬性)、能幹什麼(方式)、 起個名字(物件名) 、歸類(抽象)

C++中物件的講解(通俗易懂)

#include<iostream>usingnamespace std;classBox{public:staticint objectCount;// 建構函式定義Box(double l=2.0,double b=2.0,double h=2.0){ cout <&l