c++與其他語言的語法區別總結

本系列導航:

c++與其他語言的語法區別總結

從c語言快速過渡到java語言(java語言與c語言語法區別概述)


c++是一個具有一些c語言特性的不純粹的面嚮對象語言,下面整理一些c++與其他語言的區別之處,避免混淆。


c++中還是有指針概念的
struct結構體也依然存在,c語言中經常用struct來模擬class的功能。
c++支持多繼承
c++最爲特色的是模板的概念,好像是c++語言獨有的吧
c++中沒有interface關鍵詞,使用virtual關鍵詞構建純虛函數實現接口特性

多繼承
多繼承即一個子類可以有多個父類,它繼承了多個父類的特性。

C++ 類可以從多個類繼承成員,語法如下:

class <派生類名>:<繼承方式1><基類名1>,<繼承方式2><基類名2>,…
{
<派生類類體>

};

其中,訪問修飾符繼承方式是 public、protected 或 private 其中的一個,用來修飾每個基類,各個基類之間用逗號分隔,如上所示。

c++雙冒號的作用
::表示作用域和所屬關係
::是運算符中等級最高的,它分爲三種:
1)global scope(全局作用域符),用法(::name)
2)class scope(類作用域符),用法(class::name)
3)namespace scope(命名空間作用域符),用法(namespace::name)
他們都是左關聯(left-associativity)
他們的作用都是爲了更明確的調用你想要的變量,如在程序中的某一處你想調用全局變量a,那麼就寫成::a,如果想調用class A中的成員變量a,那麼就寫成A::a,另外一個如果想調用namespace std中的cout成員,你就寫成std::cout(相當於using namespace

std;cout)意思是在這裏我想用cout對象是命名空間std中的cout(即就是標準庫裏邊的cout)

c++模板的使用

使用模板的目的就是能夠讓程序員編寫與類型無關的代碼。比如編寫了一個交換兩個整型int 類型的swap函數,這個函數就只能實現int 型,對double,字符這些類型無法實現,要實現這些類型的交換就要重新編寫另一個swap函數。使用模板的目的就是要讓這程序的實現與類型無關,比如一個swap模板函數,即可以實現int 型,又可以實現double型的交換。模板可以應用於函數和類。

1,模板函數

函數模板的格式:

template <class 形參名,class 形參名,......> 返回類型 函數名(參數列表)
{
函數體

}

實例:

template <class T> void swap(T& a, T& b){}

當調用這樣的模板函數時類型T就會被被調用時的類型所代替,比如swap(a,b)其中a和b是int 型,這時模板函數swap中的形參T就會被int 所代替,模板函數就變爲swap(int &a, int &b)。而當swap(c,d)其中c和d是double類型時,模板函數會被替換爲swap(double &a, double &b)。數據類型有編譯器自動推演,無需顯性指明。

2,模板類

類模板的格式爲:

template<class  形參名,class 形參名,…>   class 類名

{ ... };

類模板和函數模板都是以template開始後接模板形參列表組成,模板形參不能爲空,一但聲明瞭類模板就可以用類模板的形參名聲明類中的成員變量和成員函數

實例:
template<class T> class A
{
public:
T a;
T b;
T swap(T& c, T& d);
};

類模板對象的創建:比如一個模板類A,則使用類模板創建對象的方法爲A<int> m;在類A後面跟上一個<>尖括號並在裏面填上相應的類型,這樣的話類A中凡是用到模板形參的地方都會被int 所代替。當類模板有兩個模板形參時創建對象的方法爲A<int, double> m;類型之間用逗號隔開。

接口
C++ 接口是使用抽象類來實現的,如果類中至少有一個函數被聲明爲純虛函數,則這個類就是抽象類。純虛函數是通過在聲明中使用 "= 0" 來指定的,如下所示:
class Box
{
   public:
      // 純虛函數
      virtual double getVolume() = 0;
   private:
      double length;      // 長度
      double breadth;     // 寬度
      double height;      // 高度
};
發佈了87 篇原創文章 · 獲贊 265 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章