C++知識整理二

前言

  本次總結接上次總結。

重點

  1.指針:*p是值,p是地址:
  指向常量的指針 const int *p; 它告訴編譯器,“*p”是常量,不能將它作爲左值進行操作;
  常量指針 int x=5; int * const p = &x; 編譯器把“p”看作常量地址,所以不能做左值;
  指向常量的常量指針 int x=2; const int * const p = &x; 指針和指針的對象都不能改動。

  2.要輸出數組的內容、對數組進行升冪排序、反轉數組的內容、複製數組的內容等操作,需要包含頭文件<algorithm>;要對數組進行降冪排序和檢索,需要包含頭文件<functional>

  3.C++提供了兩種格式控制方式:一種是使用iso_base類提供的接口;另一種是使用一種稱爲操控符的特殊函數。不帶形式參數的操控符定義在頭文件<iostream>中,帶形式參數的操控符定義在頭文件<iomanip>中,注意:無參數的操控符函數不能帶有“()”號。

  4.數據的封裝性

私有的數據成員,必須通過公有的成員函數才能使用。

  5.面向對象的程序設計具有抽象、封裝、繼承和多態性等。對象稱作類的一個實例;封裝是通過存取權限實現的;不同的對象可以調用相同名稱的成員函數,但可導致完全不同的行爲的現象稱爲多態。

  6.函數參數

將對象作爲函數參數 :是將實參對象的值傳遞給形參對象,這種傳遞是單向的;

void swap(string,string);          //使用string類的對象作爲函數參數

void main()
{
	string str1("現在"), str2("過去");        //定義對象str1 str2
	swap(str1,str2);                         //使用傳值方式傳遞str1 str2的數據成員值
}

void swap(string s1, string s2)     //string類的對象s1和s2作爲函數參數
{
	string temp=s1;s1=s2;s2=temp;
}

將指向對象的指針作爲函數參數,形參是對象指針,實參是對象的地址值。當在函數中改變形參的值時,改變的就是原來實參的值。

void swap(string *,string *);          //使用string類的指針作爲函數參數

void main()
{
	string str1("現在"), str2("過去");        //定義對象str1 str2
	swap(&str1,&str2);                         //使用傳地址值方式傳遞str1 str2的地址值
}

void swap(string *s1, string *s2)     //string類的對象指針s1和s2作爲函數參數
{
	string temp=*s1;*s1=*s2;*s2=temp;
}

引用作爲函數參數:在函數調用時,實參對象名傳遞給形參對象名,改變形參對象的值就是改變實參對象的值。

void swap(string&,string&);          //使用string類的引用對象作爲函數參數

void main()
{
	string str1("現在"), str2("過去");        //定義對象str1 str2
	swap(str1,str2);                         //傳遞對象的名字:str1 str2          必須使用對象名
}

void swap(string &s1, string &s2)     //string類的引用對象s1和s2作爲函數參數
{
	string temp=s1;s1=s2;s2=temp;
}

函數返回值作爲函數的參數

  7.函數返回值

  C++函數的返回值類型可以是除數組和函數以外的任何類型。

  返回引用的函數
  返回指針的函數
  返回對象的函數

  8.內聯函數
  使用關鍵字inline說明的函數稱爲內聯函數。除具有循環語句、switch語句的函數不能說明爲內聯函數外,其他函數都可以說明爲內聯函數。使用內聯函數能加快程序執行速度,但是如果函數體語句多,則會增加程序代碼的大小。所以,內聯函數應該:語句少,並被頻繁調用。

  如果在聲明類的同時,在類體內給出成員函數的定義,則默認爲內聯函數。如:

int GetX()  { return x; }

  則GetX爲內聯函數。

  9.函數重載
  函數重載的區別有3個:一是參數類型不同,二是參數個數不同,三是const。僅有函數返回值不同是區分不了重載函數的。

  10.靜態聯編和動態聯編

  動態聯編(遲後聯編)直到程序運行時才能確定調用哪個函數;支持的多態性稱爲運行時的多態性,由虛函數支持。
  靜態聯編(先期聯編)編譯時進行的;支持的多態性稱爲編譯時的多態性。

總結

  先整理這麼多吧,都是當時考試的時候重點複習的,希望明年這個時候可以幫到大家,我還會繼續總結的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章