C++Primer讀書筆記(三)

來源:互聯網
上載者:User
函數傳回值需要注意點:
1、千萬不要返回局部對象的引用
當函數執行完畢時,將釋放分配給局部對象的記憶體空間,此時,對局部變數的引用就會指向不確定的記憶體。舉例:
const string &manip(const string &s)
{
string ret = s;
return ret;
}
2、千萬不要返回指向局部對象的指標
   函數傳回型別可以是大多數類型。特別地,函數也可以返回指標類型。一旦函數結束,局部對象被釋放,返回的指標就變成了指向不再存在的對象的懸垂指標。

預設實參:
string ScreenInit(string::size_type height = 24, string::size_type width = 80; char backgroud = " ")
{
////
}
調用包含預設實參的時候,可以為該形參制定參數,也可以不指定。
指定預設實參的約束:
  既可以在函數申明也可以在函數定義中指定預設實參,但是,在一個檔案中,只能為一個形參指定預設實參一次。舉例:
//ff.h
int ff(int = 0)  //函式宣告

//ff.c
#include"ff.h"
int ff(int i = 0){}  //函數定義

而通常應在函式宣告中指定預設實參,並將聲明放在合適的標頭檔中。


重載確定的三個步驟:

1、候選函數(與被調用函數同名)

      函數重載確定的第一步是確定該調用所考慮的重載函數集合,該集合中的函數稱為候選函數。

2、選擇可行函數

      從候選函數中選擇一個或者多個函數,它們能夠用該調用中指定的實參來調用。

     可行函數滿足兩個條件:

     1、函數的形參個數與該調用函數的實參個數相同;

     2、每一個實參 的類型必須與對應的類型匹配,或者可被隱式轉換為對應的形參類型

3、尋找首選

      

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.