1. 程式人生 > 其它 >C++類和物件學習筆記

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時會呼叫解構函式)

物件陣列與物件指標(待補,指標還不咋會qwq)