在類中,如果你不希望某些數據被修改,可以使用const關鍵字加以限定。const 可以用來修飾成員變量、成員函數以及對象。 const成員變量const 成員變
友元函數和友元類在實際開發中較少使用,想快速學習C++的讀者可以跳過本節。一個類中可以有 public、protected、private 三種屬性的成員,通
C++ 中保留了C語言的 struct 關鍵字,並且加以擴充。在C語言中,struct 只能包含成員變量,不能包含成員函數。而在C++中,struct 類似於
C++ 大大增強了對字符串的支持,除了可以使用C風格的字符串,還可以使用內置的 string 類。string 類處理起字符串來會方便很多,完全可以代替C語言中
我們知道,參數的傳遞本質上是一次賦值的過程,賦值就是對內存進行拷貝。所謂內存拷貝,是指將一塊內存上的數據復制到另一塊內存上。對於像 char、bool、int、
繼承是類與類之間的關系,是一個很簡單很直觀的概念,與現實世界中的繼承類似,例如兒子繼承父親的財產。繼承(Inheritance)可以理解為一個類從另一個類獲取成
C++繼承的一般語法為: class 派生類名:[繼承方式] 基類名{ 派生類新增加的成員 };繼承方式限定了基類成員在派
如果派生類中的成員(包括成員變量和成員函數)和基類中的成員重名,那麼就會遮蔽從基類繼承過來的成員。所謂遮蔽,就是在派生類中使用該成員(包括在定義派生類時使用,也
前面我們說基類的成員函數可以被繼承,可以通過派生類的對象訪問,但這僅僅指的是普通的成員函數,類的構造函數不能被繼承。構造函數不能被繼承是有道理的,因為即使繼承了
和構造函數類似,析構函數也不能被繼承。與構造函數不同的是,在派生類的析構函數中不用顯式地調用基類的析構函數,因為每個類只有一個析構函數,編譯器知道如何選擇,無需
在前面的例子中,派生類都只有一個基類,稱為單繼承(Single Inheritance)。除此之外,C++也支持多繼承(Multiple Inheritance
多繼承(Multiple Inheritance)是指從多個直接基類中產生派生類的能力,多繼承的派生類繼承了所有父類的成員。盡管概念上非常簡單,但是多個基類的相
在虛繼承中,虛基類是由最終的派生類初始化的,換句話說,最終派生類的構造函數必須要調用虛基類的構造函數。對最終的派生類來說,虛基類是間接基類,而不是直接基類。這跟
在 C/C++ 中經常會發生數據類型的轉換,例如將 int 類型的數據賦值給 float 類型的變量時,編譯器會先把 int 類型的數據轉換為 float 類型
在《C++基類對象和派生類對象的賦值》一節中講到,基類的指針也可以指向派生類對象,請看下面的例子:#include <iostream>using
虛函數對於多態具有決定性的作用,有虛函數才能構成多態,這節我們來重點說一下虛函數的注意事項。1) 只需要在虛函數的聲明處加上 virtual 關鍵字,
在C++中,可以將虛函數聲明為純虛函數,語法格式為: virtual 返回值類型 函數名 (函數參數) = 0;純虛函數沒有函數體,只有函數聲明,在虛函數聲明的
typeid 運算符用來獲取一個表達式的類型信息。類型信息對於編程語言非常重要,它描述了數據的各種屬性: 對於基本類型(int、float 等C++內置類型
所謂重載,就是賦予新的含義。函數重載(Function Overloading)可以讓一個函數名有多種功能,在不同情況下進行不同的操作。運算符重載(Operat
運算符重載是通過函數重載實現的,概念上大家都很容易理解,這節我們來說一下運算符重載的注意事項。1) 並不是所有的運算符都可以重載。能夠重載的運算符包括:+&nb