足跡C primer 12 函式過載

2021-06-22 05:09:49 字數 833 閱讀 9375

main函式不能過載

record lookup(const account&);  //account是乙個型別

record lookup(const phone&);

record lookup(const name&);

account acct;

phone phone;

record r1=lookup(acct);

record r2=lookup(phone);

過載函式應該是引數個數和引數型別不同

乙個擁有頂層const的形參無法和另乙個沒有頂層const的形參區分開來。

另一方面,如果形參是某型別的指標或引用,則通過區分其指向的是常量物件還是非常量物件可以實現函式過載,此時const是底層的

const string &shorterstring(const string &s1,const string &s2)

不論這樣返回都是const的string常量

string &shorterstring(string &s1,string &s2)

這樣就好點了

const_cast是用來解常量的

三種情況:完美匹配,不匹配,二義性呼叫

string read();

void print(const string &);

void print(double); //過載print函式

void foobar(int ival)

C primer 12 類 主建構函式

1 class 預設成員變數private,struct預設是public 2 class screen const 成員函式set中,this的型別是乙個指向const物件的const指標,就是說,指標位址不可以改,內容也不可以改。而非const函式,this指標位址不可以改,但是指向的內容可以改...

C Primer12抽象基類

型別轉換與繼承 我們可以將基類的指標和引用繫結到派生類物件上。當使用基類的引用或指標時,實際上我們並不清楚我們使用的物件到底是基類物件還是派生類物件。靜態型別和動態型別 例如item.net price 它的靜態型別是quote 動態型別則根據傳入的實參來決定。如果傳入的是bulk quote,則動...

C primer 12章 動態記憶體

這一章,由於本身對c語言動態分配以及指標比較熟悉,所以看起來會很輕鬆的。int i pi1 i pi2 nullptr double pd new double 33 pd1 pd const ini pci new const int 12 delete i 編譯器發現i不是指標,產生編譯錯誤資訊...