C++類和物件學習筆記
基本概念
結構體和類
結構體和類非常相似,它們之間除了寫法格式上的不同,結構體用的是\(struct\),而類用的是\(class\)定義外,類中還有特定的\(public\)和\(private\),其中,\(public\)為公共資料,可以在類外使用,而\(private\)為類內資料,只能在類內使用。
成員函式
類內成員函式的定義
方法一
成員函式在類外面
class point
{
void point::car(int x)
{
return x*x;
}
}
即返回值型別 類名::成員函式名(引數表)
{
函式體
}
方法二
成員函式直接定義在類裡面
用法和結構體一樣,不多解釋了
方法三
使用內聯成員函式,關鍵字\(inline\)
類物件的定義及使用
和結構體一樣,不多$\LARGE{bb}$了
建構函式和解構函式
物件初始化和建構函式
物件的初始化不能直接像結構體一樣直接套等於,要用到建構函式,建構函式名和類名一樣,一般對私有成員賦初值,形式一般有如下兩種。
第一種
類名 物件名[(實參表)]
class Complex { private: int a; int b; public: Complex(int c,int d) { a=c; b=d; } int car() { return a+b; } } int main() { Complex A(1,2);//定義物件A時呼叫了建構函式Complex //分別對a和b賦初值1和2 cout<<A.car()<<endl; return 0; }
第二種
類名*指標變數名=new類名[(實參表)]
例如:Complex *pa=new Complex(1,2);
輸出時呼叫pa->car()
同時也可以用delete釋放
例如:delete pa;
\(tip:\)
1、建構函式名和類名要一樣。
2、沒有返回值
3、寫在類裡面外面都可以
4、建構函式可以不帶引數
用成員初始化列表對資料成員初始化
語法格式如下:
類名::建構函式名([引數表])[:(成員初始化列表)]
{
//建構函式體
}
成員初始化列表的一般形式語言為:
資料成員名1(初始值1),資料成員名2(初始值2),······
例如:
Complex::Complex(int c,int d):a(c),b(d) { //使用成員初始化列表對資料成員初始化 }
建構函式的過載
用法參考函式的過載,也不多bb了
帶預設引數的建構函式
emm好像也沒啥好說的
解構函式
語法如下:
~Complex();//宣告解構函式
······
Complex::~Complex()//定義解構函式
{
//函式部分
}
也可直接顯式定義,如下:
~Complex()//定義解構函式
{
//函式部分
}
這點也和結構體類似\(qwq\)
\(tips:\)
1、解構函式名和類名一樣
2、無返回值
3、無引數
4、撤銷物件時,會自動呼叫解構函式(如主函式結束return 0時會呼叫解構函式)