1. 程式人生 > >類和物件基礎知識

類和物件基礎知識

1.類和物件的基礎知識
定義:類就可以看做是對相似事物的抽象
訪問限定符:public,private,protect
封裝性:
    1)良好的封裝能夠減少耦合。
    2)類內部的結構可以自由修改。
    3)可以對成員進行更精確的控制。
    4)隱藏實現細節
物件大小計算:只計算非靜態成員變數(公有私有都算), 不算函式,和static變數,有記憶體對齊,空間換時間


2.四個預設成員函式,運算子過載


1)建構函式:初始化物件
  無返回值
  與類同名
  例項化時自動呼叫
  可過載
  只要定義了建構函式,系統不會預設生成
  無參建構函式,全預設建構函式,都叫預設建構函式
  預設建構函式只能有一個,可以半預設
  可在類外定義


2)拷貝建構函式:特殊的建構函式
  拷貝構造是建構函式的過載
  自己寫拷貝構造時候引數要傳引用,否則無窮遞迴


3)解構函式:清理工作
  物件生命週期結束時自動呼叫
  類名前面加~
  不刪除物件,而是做一些清理工作,關閉檔案,釋放動態開闢等


4)賦值運算子的過載
  兩個物件都存在時才會有賦值運算子過載
  d1和d2兩個日期類都存在,d1=d2是賦值運算子過載
  Date d2 = d1;這是拷貝構造,因為d2不是已經存在的


運算子過載
  不能過載的5個運算子:  .*   ::   sz   ?:   .


3.隱含的this指標
  非靜態成員函式第一個引數都是this指標
  public:  void Display(Date *this)
  cout<<this->_year;
  main:   Date d1; d1.Display(&d1);


4.運算子過載背後做的事情
  兩個日期類 d1 == d2
  編譯器會處理成 d1.operator==(&d1,d2);