1、建構函式
c++中定義了一種特殊的初始化函式,稱為建構函式;當物件被呼叫時,建構函式自動呼叫;建構函式名字與類名相同,也沒有返回型別和返回值;物件在生成過程中通常需要初始化變數或分配動態記憶體,用建構函式。
程式中可以沒有建構函式,這時會執行乙個空的建構函式。
下面來看建構函式例項:
#include
using
namespace
std;
class stu;
stu::stu() /*這個建構函式只是將變數初始化,並沒有進行其他操作*/
/*構造函式引數列表*/
stu::stu(const
char *name, int age, float score):m_name(name), m_age(age), m_score(score){}
void stu::show()
2、析構函式析構函式,是在物件被刪除前由系統自動執行它作清理工作。
下面來看析構函式例項:
#include
using
namespace
std;
class carea;
carea::carea(int a, int b) /*建構函式中對變數初始化及為指標變數分配空間*/
再來看下一例:
從結果中可以看出,建構函式的執行是按順序執行的,而析構函式順序剛好相反,析構函式總是在最後被呼叫,完成清理工作。
C 基本知識整理
1.全域性靜態變數 記憶體中位置 靜態儲存區,且程式執行期間一直存在。未經初始化的全域性靜態變數自動初始化為0。全域性靜態變數在宣告檔案之外是不可見的。2.區域性靜態變數 記憶體中位置 靜態儲存區。未初始化自動初始化為0。作用域為區域性作用域,但離開作用域後不會銷毀,仍然駐留在記憶體中,再次訪問時值...
C 基本知識整理(1)
在c 程式設計中using namespace std 這條語句很常見,其中,namespace就是命名空間,而using是宣告,std是命名空間名。命名空間就是為了解決c 中函式變數的命名衝突所採取的一種措施,能夠解決多模組協同開發出現變數函式命名的衝突問題。1 using宣告及作用域 using...
C 基本知識2
const在c c 中的作用 如果有乙個類成員,它本身是乙個類或者是乙個結構,而且這個成員它只有乙個帶引數的建構函式,沒有預設建構函式。這時要對這個類成員進行初始化,就必須呼叫這個類成員的帶引數的建構函式,如果沒有初始化列表,那麼他將無法完成第一步,就會報錯。類成員中若有const修飾,必須在物件初...