抽象和類,this,運算子過載

2021-07-30 00:06:22 字數 2148 閱讀 2476

抽象和類

(1)c++程式設計師將介面(類定義)放在標頭檔案中,並將實現方法(類方法的**)放在源**檔案中;

(2)類名的首字母大寫;private 成員函式,編寫這個類的人可以使用它,但是編寫**來使用這個類的人不能使用;

(3)內聯函式:定義位於宣告中的函式將自動成為內聯函式;類宣告常將短小的函式作為內聯函式;

(4)類宣告類似於結構宣告,可以包括資料成員和函式成員,在私有部分private中宣告的成員只能通過成員函式進行訪問,在公有部分public中宣告的成員可被使用類物件的程式直接訪問;

class

classname

;

(5)實現類成員函式,可以在類宣告中提供完整的函式定義,而不是函式原型,但是通常的做法是單獨提供函式定義(除非函式很小),在中情況下,需要使用作用域解析運算子倆指定成員函式屬於哪個類。

(6)建構函式,專門用於構造新的物件,將值賦給它們的資料成員;

預設建構函式:

stock::stock()

stock first; //calls default constructor implicitly

stock fitst=stock(); //calls it explicitly

stock *second=new stock; //calls it implicitly

(7)析構函式:當物件過期時,程式自動呼叫析構函式完成清理工作;析構函式在類名字前面加上~;如:stock類的析構函式為~stock();析構函式沒有返回型別(連void也沒有),也沒有引數;如果建構函式使用了new,則必須提供使用delete的析構函式;

如果程式設計師沒有提供析構函式,編譯器將隱式的宣告乙個預設的析構函式,並發現導致物件被刪除的**後,提供預設析構函式的定義;

程式執行析構函式時:由於自動變數存放在棧中,因此最後建立的物件最先被刪除,最先建立的物件將最後刪除;

(8)c++11列表初始化

stock hot_tip=;

stock jock;

stock temp{};

(9)const 成員函式:

void stock::show() const ; //promises not to change invoking object

函式定義的開頭:

void stock::show() const

//promises not to change invoking object

const stock & stock::topval(const stock & s)  const

const stock *top=stock1.topval(stock2); //將this指標設定成stock1物件的位址;

類作用域

在類中定義的名稱的作用域都為整個類,作用域為整個類的名稱在該類中是已知的,在類外是未知的;因此要呼叫公有函式必須通過物件;在定義成員函式時,必須使用作用域解析運算子;

void stock::update(double price)

運算子過載

(1)不要返回指向區域性變數或臨時物件的引用,函式執行完畢後,區域性變數和臨時變數將消失,引用將指向不存在的資料。

(2)operator+( ),在運算子表示法中,運算子左側的物件是呼叫物件,運算子右邊的物件是作為引數被傳遞的物件。

友元函式

(1)建立友元:friend time operator*(double m,const time & s);

編寫定義:因為它不是成員函式,所以不能使用time::限定符,不要在定義中使用friend關鍵字

time operator*(double m,const time & s)

(2)要過載《運算子來顯示c_name的物件,可使用乙個友元函式:

ostream & operator(ostream & os,const c_name & obj)

如:cout<

類和物件 運算子過載 3 遞增運算子過載

作用 通過過載遞增運算子,實現自己的整型資料 include include using namespace std 自定義整型 class myinteger 過載前置 運算子 myinteger operator 返回引用為了一直對乙個資料進行遞增操作 過載後置 運算子 myinteger op...

運算子類過載

類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...

運算子過載 類的賦值運算子過載

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...