1:類的6個預設成員函式
2:建構函式
1):概念
乙個特殊的成員函式,名字與類名相同,建立類型別物件的時候,由編譯器自己呼叫,在物件的生命週期中且呼叫一次,以保證每個資料成員都有乙個合適的初始值
2):建構函式的特性:
class date
;
test.cpp
//無參建構函式
date:
:date()
//帶參建構函式
date:
:date
(int year,
int month,
int day)
intmain()
class date
;
test.cpp
#include
"test.h"
//如果使用者顯式定義了建構函式,編譯器將不再生成
//date::date(int year, int month, int day)
intmain()
3):預設建構函式
未提供顯式初始值的建構函式
4):建構函式的作用
3:析構函式
1):概念:與建構函式功能相反,析構函式不是完成物件的銷毀,區域性物件的銷毀是由編譯器完成的,而物件在銷毀時會自動呼叫析構函式,完成類的一些資源清理工作。
2):特性
test.h
class line
;
test.cpp
#include
"test.h"
#include
#include
typedef
int datatype;
seqlist:
:seqlist
(int capacity=10)
seqlist::~
seqlist()
}void seqlist:
:testseqlist()
intmain()
4:拷貝建構函式
test.h
class date
;
test.cpp
#include
"test.h"
date:
:date
(int year,
int month,
int day)
date:
:date
(const date& d)
void date:
:print()
intmain()
概念:
只有單個形參,該形參是對本類型別物件的引用(一般常用const修飾),在用已存在的類型別物件建立新物件時由編譯器自動呼叫。
特性:
5:賦值操作符過載
概念:對於類型別的物件,我們需要對「=」進行過載,已完成類型別之間的賦值
test.h
class date
;
test.cpp
#include
"test.h"
date:
:date
(int year,
int month,
int day)
date& date:
:operator=
(const date& d)
return
*this;
}void date:
:print()
intmain()
6:const成員函式
將const修飾的類成員函式,稱之為const成員函式,const修飾類成員函式,實際修飾該成員函式隱含的this指標,表明在該成員函式中不能對類的任何成員進行修改。
test.h
class date
;
test.cpp
#include
"test.h"
void date:
:display()
void date:
:display()
const
intmain()
7:取位址及const修飾的取位址操作符過載
test.h
class date
;
test.cpp
#include
"test.h"
date* date:
:operator&()
const date* date:
:operator&()
const
類與物件(中篇)
如果乙個類中什麼成員都沒有,簡稱為空類,任何乙個類在我們不寫的情況下,都會自動生成下面6個預設成員函式。概念建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員都有 乙個合適的初始值,並且在物件的生命週期內只呼叫一次。特性 建構函式是特殊的成員函式,需要注...
程式設計師成長之旅 類和物件中篇
析構函式 拷貝建構函式 賦值運算子過載 const成員 取位址及const取位址運算子過載 如果乙個類中什麼都沒有,我們都知道它是空類,但是空類是不是什麼事情都不做,答案當然是否定的,它會生成6個預設函式。概念建構函式是乙個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資...
類與物件 物件
一 什麼是物件?1.物件是由我們自己建立的類來建立出來的。2.物件就是類的例項 可以真正使用類的資料,可以呼叫類中元素的資料 3.乙個類可以建立出多個物件 二 如何建立物件?1.保證用來建立物件的類是存在 2.需要通過類中提供的構造方法建立物件 格式 new 構造方法 引數值 三 建立好的物件的有何...