<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【軟件開發(fā)】編程語言C++(上篇)

          共 11576字,需瀏覽 24分鐘

           ·

          2021-07-29 09:54

          -Start:關(guān)注本公眾號(hào)后,可直接聯(lián)系后臺(tái)獲取排版美化的詳細(xì)文檔!

          Hints:本篇文章所編纂的資料均來自網(wǎng)絡(luò),特此感謝參與奉獻(xiàn)的有關(guān)人員。


          • C++的基本概念:

          C++ 是一種靜態(tài)類型的、編譯式的、通用的、大小寫敏感的、不規(guī)則的編程語言,支持過程化編程、面向?qū)ο缶幊毯头盒途幊獭?/span>

          ?

          • C++的語言特性:

          -面向?qū)ο箝_發(fā)的四大特性:

          1 封裝

          2 抽象

          3 繼承

          4 多態(tài)

          ?

          • C++的關(guān)鍵字集:

          asm

          else

          new

          this

          auto

          enum

          operator

          throw

          bool

          explicit

          private

          true

          break

          export

          protected

          try

          case

          extern

          public

          typedef

          catch

          false

          register

          typeid

          char

          float

          reinterpret_cast

          typename

          class

          for

          return

          union

          const

          friend

          short

          unsigned

          const_cast

          goto

          signed

          using

          continue

          if

          sizeof

          virtual

          default

          inline

          static

          void

          delete

          int

          static_cast

          volatile

          do

          long

          struct

          wchar_t

          double

          mutable

          switch

          while

          dynamic_cast

          namespace

          template


          -typdef

          可以使用?typedef?為一個(gè)已有的類型取一個(gè)新的名字。

          typedef type newname;

          -enum

          枚舉類型(enumeration)C++中的一種派生數(shù)據(jù)類型,它是由用戶定義的若干枚舉常量的集合。如果一個(gè)變量只有幾種可能的值,可以定義為枚舉(enumeration)類型。所謂"枚舉"是指將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內(nèi)。

          -定義常量

          C++ 中,有兩種簡(jiǎn)單的定義常量的方式:

          使用?#define?預(yù)處理器。

          使用?const?關(guān)鍵字。

          使用 #define 預(yù)處理器定義常量

          #define identifier value

          ?

          • C++的內(nèi)置類型:

          -類型字符

          類型

          關(guān)鍵字

          布爾型

          bool

          字符型

          char

          整型

          int

          浮點(diǎn)型

          float

          雙浮點(diǎn)型

          double

          無類型

          void

          寬字符型

          wchar_t

          -類型修飾符:

          一些基本類型可以使用一個(gè)或多個(gè)類型修飾符進(jìn)行修飾:

          -signed

          -unsigned

          -short

          -long

          -類型大小:

          范圍

          char

          1 個(gè)字節(jié)

          -128 127 或者 0 255

          unsigned char

          1 個(gè)字節(jié)

          0 255

          signed char

          1 個(gè)字節(jié)

          -128 127

          int

          4 個(gè)字節(jié)

          -2147483648 2147483647

          unsigned int

          4 個(gè)字節(jié)

          0 4294967295

          signed int

          4 個(gè)字節(jié)

          -2147483648 2147483647

          short int

          2 個(gè)字節(jié)

          -32768 32767

          unsigned short int

          2 個(gè)字節(jié)

          0 65,535

          signed short int

          2 個(gè)字節(jié)

          -32768 32767

          long int

          8 個(gè)字節(jié)

          -9,223,372,036,854,775,808 9,223,372,036,854,775,807

          signed long int

          8 個(gè)字節(jié)

          -9,223,372,036,854,775,808 9,223,372,036,854,775,807

          unsigned long int

          8 個(gè)字節(jié)

          0 18,446,744,073,709,551,615

          float

          4 個(gè)字節(jié)

          精度型占4個(gè)字節(jié)(32位)內(nèi)存空間,+/- 3.4e +/- 38 (~7 個(gè)數(shù)字)

          double

          8 個(gè)字節(jié)

          雙精度型占8 個(gè)字節(jié)(64位)內(nèi)存空間,+/- 1.7e +/- 308 (~15 個(gè)數(shù)字)

          long double

          16 個(gè)字節(jié)

          長(zhǎng)雙精度型 16 個(gè)字節(jié)(128位)內(nèi)存空間,可提供18-19位有效數(shù)字。

          wchar_t

          2 4 個(gè)字節(jié)

          1 個(gè)寬字符

          -類型限定符

          限定符

          含義

          const

          const?類型的對(duì)象在程序執(zhí)行期間不能被修改改變。

          volatile

          修飾符?volatile?告訴編譯器不需要優(yōu)化volatile聲明的變量,讓程序可以直接從內(nèi)存中讀取變量。對(duì)于一般的變量編譯器會(huì)對(duì)變量進(jìn)行優(yōu)化,將內(nèi)存中的變量值放在寄存器中以加快讀寫效率。

          restrict

          ?restrict?修飾的指針是唯一一種訪問它所指向的對(duì)象的方式。只有?C99?增加了新的類型限定符?restrict



          • C++的數(shù)據(jù)結(jié)構(gòu)

          -數(shù)組結(jié)構(gòu)

          C++ 支持?jǐn)?shù)組數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)一個(gè)固定大小的相同類型元素的順序集合。數(shù)組是用來存儲(chǔ)一系列數(shù)據(jù),但它往往被認(rèn)為是一系列相同類型的變量。

          概念

          描述

          多維數(shù)組

          C++ 支持多維數(shù)組。多維數(shù)組最簡(jiǎn)單的形式是二維數(shù)組。

          指向數(shù)組的指針

          您可以通過指定不帶索引的數(shù)組名稱來生成一個(gè)指向數(shù)組中第一個(gè)元素的指針。

          傳遞數(shù)組給函數(shù)

          您可以通過指定不帶索引的數(shù)組名稱來給函數(shù)傳遞一個(gè)指向數(shù)組的指針。

          從函數(shù)返回?cái)?shù)組

          C++ 允許從函數(shù)返回?cái)?shù)組。

          -字符串

          C++ 提供了以下兩種類型的字符串表示形式:

          -C 風(fēng)格字符串

          -C++ 引入的 string 類類型

          序號(hào)

          函數(shù) & 目的

          1

          strcpy(s1, s2);
          ?
          復(fù)制字符串 s2 到字符串 s1

          2

          strcat(s1, s2);
          ?
          連接字符串 s2 到字符串 s1 的末尾。連接字符串也可以用?+?號(hào),例如:

          string str1 = "runoob";

          string str2 = "google";

          string str = str1 + str2;

          3

          strlen(s1);
          ?
          返回字符串 s1 的長(zhǎng)度。

          4

          strcmp(s1, s2);
          ?
          如果 s1 s2 是相同的,則返回 0;如果 ?s1<s2 則返回值小于 0;如果 s1>s2 則返回值大于 0

          5

          strchr(s1, ch);
          ?
          返回一個(gè)指針,指向字符串 s1 中字符 ch 的第一次出現(xiàn)的位置。

          6

          strstr(s1, s2);
          ?
          返回一個(gè)指針,指向字符串 s1 中字符串 s2 的第一次出現(xiàn)的位置。

          -指針

          指針是一個(gè)變量,其值為另一個(gè)變量的地址,即,內(nèi)存位置的直接地址。就像其他變量或常量一樣,您必須在使用指針存儲(chǔ)其他變量地址之前,對(duì)其進(jìn)行聲明。指針變量聲明的一般形式為:

          type *var-name;

          每一個(gè)變量都有一個(gè)內(nèi)存位置,每一個(gè)內(nèi)存位置都定義了可使用連字號(hào)(&)運(yùn)算符訪問的地址,它表示了在內(nèi)存中的一個(gè)地址。

          C++ ?Null 指針

          C++ 支持空指針。NULL 指針是一個(gè)定義在標(biāo)準(zhǔn)庫(kù)中的值為零的常量。

          C++ 指針的算術(shù)運(yùn)算

          可以對(duì)指針進(jìn)行四種算術(shù)運(yùn)算:++--+-

          C++ 指針 vs 數(shù)組

          指針和數(shù)組之間有著密切的關(guān)系。

          C++ 指針數(shù)組

          可以定義用來存儲(chǔ)指針的數(shù)組。

          C++ 指向指針的指針

          C++ 允許指向指針的指針。

          C++ 傳遞指針給函數(shù)

          通過引用或地址傳遞參數(shù),使傳遞的參數(shù)在調(diào)用函數(shù)中被改變。

          C++ 從函數(shù)返回指針

          C++ 允許函數(shù)返回指針到局部變量、靜態(tài)變量和動(dòng)態(tài)內(nèi)存分配。

          -引用

          C++?引用

          引用變量是一個(gè)別名,也就是說,它是某個(gè)已存在變量的另一個(gè)名字。一旦把引用初始化為某個(gè)變量,就可以使用該引用名稱或變量名稱來指向變量。

          C++ 引用 vs 指針

          引用很容易與指針混淆,它們之間有三個(gè)主要的不同:

          -不存在空引用。引用必須連接到一塊合法的內(nèi)存。

          -一旦引用被初始化為一個(gè)對(duì)象,就不能被指向到另一個(gè)對(duì)象。指針可以在任何時(shí)候指向到另一個(gè)對(duì)象。

          -引用必須在創(chuàng)建時(shí)被初始化。指針可以在任何時(shí)間被初始化。

          -日期 & 時(shí)間

          C++ 標(biāo)準(zhǔn)庫(kù)沒有提供所謂的日期類型。C++ 繼承了 C 語言用于日期和時(shí)間操作的結(jié)構(gòu)和函數(shù)。為了使用日期和時(shí)間相關(guān)的函數(shù)和結(jié)構(gòu),需要在 C++ 程序中引用 <ctime> 頭文件。

          序號(hào)

          函數(shù) & 描述

          1

          time_t time(time_t ?*time);
          ?
          該函數(shù)返回系統(tǒng)的當(dāng)前日歷時(shí)間,自 ?1970 1 1 日以來經(jīng)過的秒數(shù)。如果系統(tǒng)沒有時(shí)間,則返回 -1

          2

          char *ctime(const ?time_t *time);
          ?
          該返回一個(gè)表示當(dāng)?shù)貢r(shí)間的字符串指針,字符串形式?day month year hours:minutes:seconds year\n\0

          3

          struct tm ?*localtime(const time_t *time);
          ?
          該函數(shù)返回一個(gè)指向表示本地時(shí)間的?tm?結(jié)構(gòu)的指針。

          4

          clock_t ?clock(void);
          ?
          該函數(shù)返回程序執(zhí)行起(一般為程序的開頭),處理器時(shí)鐘所使用的時(shí)間。如果時(shí)間不可用,則返回 -1

          5

          char * asctime ( ?const struct tm * time );
          ?
          該函數(shù)返回一個(gè)指向字符串的指針,字符串包含了 time 所指向結(jié)構(gòu)中存儲(chǔ)的信息,返回形式為:day month date hours:minutes:seconds year\n\0

          6

          struct tm ?*gmtime(const time_t *time);
          ?
          該函數(shù)返回一個(gè)指向 time 的指針,time tm 結(jié)構(gòu),用協(xié)調(diào)世界時(shí)(UTC)也被稱為格林尼治標(biāo)準(zhǔn)時(shí)間(GMT)表示。

          7

          time_t mktime(struct ?tm *time);
          ?
          該函數(shù)返回日歷時(shí)間,相當(dāng)于 time 所指向結(jié)構(gòu)中存儲(chǔ)的時(shí)間。

          8

          double difftime ( ?time_t time2, time_t time1 );
          ?
          該函數(shù)返回 time1 time2 之間相差的秒數(shù)。

          9

          size_t strftime();
          ?
          該函數(shù)可用于格式化日期和時(shí)間為指定的格式。

          -模板

          模板是創(chuàng)建泛型類或函數(shù)的藍(lán)圖或公式。庫(kù)容器,比如迭代器和算法,都是泛型編程的例子,它們都使用了模板的概念。

          每個(gè)容器都有一個(gè)單一的定義,比如?向量,我們可以定義許多不同類型的向量,比如?vector <int>??vector <string>


          • C++的運(yùn)算符

          -算術(shù)運(yùn)算符

          算符

          描述

          實(shí)例

          +

          把兩個(gè)操作數(shù)相加

          A + B 將得到 30

          -

          從第一個(gè)操作數(shù)中減去第二個(gè)操作數(shù)

          A - B 將得到 -10

          *

          把兩個(gè)操作數(shù)相乘

          A * B 將得到 200

          /

          分子除以分母

          B / A 將得到 2

          %

          取模運(yùn)算符,整除后的余數(shù)

          B % A 將得到 0

          ++

          自增運(yùn)算符,整數(shù)值增加 1

          A++ 將得到 11

          --

          自減運(yùn)算符,整數(shù)值減少 1

          A-- 將得到 9

          -關(guān)系運(yùn)算符

          運(yùn)算符

          描述

          實(shí)例

          ==

          檢查兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。

          (A == B) 不為真。

          !=

          檢查兩個(gè)操作數(shù)的值是否相等,如果不相等則條件為真。

          (A != B) 為真。

          >?

          檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真。

          (A > B) 不為真。

          <?

          檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真。

          (A < B) 為真。

          >=

          檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是則條件為真。

          (A >= B) 不為真。

          <=

          檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是則條件為真。

          (A <= B) 為真。

          -邏輯運(yùn)算符

          運(yùn)算符

          描述

          實(shí)例

          &&

          稱為邏輯與運(yùn)算符。如果兩個(gè)操作數(shù)都 ?true,則條件為 true

          (A && B) false

          ||

          稱為邏輯或運(yùn)算符。如果兩個(gè)操作數(shù)中有任意一個(gè) true,則條件為 true

          (A || B) true

          !

          稱為邏輯非運(yùn)算符。用來逆轉(zhuǎn)操作數(shù)的邏輯狀態(tài),如果條件為 true 則邏輯非運(yùn)算符將使其為 false

          !(A && B) true

          -位運(yùn)算符

          運(yùn)算符

          描述

          實(shí)例

          &

          按位與操作,按二進(jìn)制位進(jìn)行""運(yùn)算。運(yùn)算規(guī)則:

          0&0=0;?? ?

          0&1=0;??? ?

          1&0=0;???? ?

          1&1=1;

          (A & B) 將得到 12,即為 0000 1100

          |

          按位或運(yùn)算符,按二進(jìn)制位進(jìn)行""運(yùn)算。運(yùn)算規(guī)則:

          0|0=0;?? ?

          0|1=1;?? ?

          1|0=1;??? ?

          1|1=1;

          (A | B) 將得到 61,即為 ?0011 1101

          ^

          異或運(yùn)算符,按二進(jìn)制位進(jìn)行"異或"運(yùn)算。運(yùn)算規(guī)則:

          0^0=0;?? ?

          0^1=1;?? ?

          1^0=1;? ?

          1^1=0;

          (A ^ B) 將得到 49,即為 ?0011 0001

          ~

          取反運(yùn)算符,按二進(jìn)制位進(jìn)行"取反"運(yùn)算。運(yùn)算規(guī)則:

          ~1=-2;?? ?

          ~0=1;

          (~A ) 將得到 -61,即為 ?1100 0011,一個(gè)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼形式。

          <<?

          二進(jìn)制左移運(yùn)算符。將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部左移若干位(左邊的二進(jìn)制位丟棄,右邊補(bǔ)0)。

          A << 2 將得到 240,即為 1111 0000

          >>?

          二進(jìn)制右移運(yùn)算符。將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,正數(shù)左補(bǔ)0,負(fù)數(shù)左補(bǔ)1,右邊丟棄。

          A >> 2 將得到 15,即為 0000 1111

          -賦值運(yùn)算符

          運(yùn)算符

          描述

          實(shí)例

          =

          簡(jiǎn)單的賦值運(yùn)算符,把右邊操作數(shù)的值賦給左邊操作數(shù)

          C = A + B 將把 A + B 的值賦給 C

          +=

          加且賦值運(yùn)算符,把右邊操作數(shù)加上左邊操作數(shù)的結(jié)果賦值給左邊操作數(shù)

          C += A 相當(dāng)于 C = C + A

          -=

          減且賦值運(yùn)算符,把左邊操作數(shù)減去右邊操作數(shù)的結(jié)果賦值給左邊操作數(shù)

          C -= A 相當(dāng)于 C = C - A

          *=

          乘且賦值運(yùn)算符,把右邊操作數(shù)乘以左邊操作數(shù)的結(jié)果賦值給左邊操作數(shù)

          C *= A 相當(dāng)于 C = C * A

          /=

          除且賦值運(yùn)算符,把左邊操作數(shù)除以右邊操作數(shù)的結(jié)果賦值給左邊操作數(shù)

          C /= A 相當(dāng)于 C = C / A

          %=

          求模且賦值運(yùn)算符,求兩個(gè)操作數(shù)的模賦值給左邊操作數(shù)

          C %= A 相當(dāng)于 C = C % A

          <<=

          左移且賦值運(yùn)算符

          C <<= 2 等同于 C = C << 2

          >>=

          右移且賦值運(yùn)算符

          C >>= 2 等同于 C = C >> 2

          &=

          按位與且賦值運(yùn)算符

          C &= 2 等同于 C = C & 2

          ^=

          按位異或且賦值運(yùn)算符

          C ^= 2 等同于 C = C ^ 2

          |=

          按位或且賦值運(yùn)算符

          C |= 2 等同于 C = C | 2

          -雜項(xiàng)運(yùn)算符

          運(yùn)算符

          描述

          sizeof

          sizeof 運(yùn)算符返回變量的大小。例如,sizeof(a) 將返回 4,其中 a 是整數(shù)。

          Condition ? X : Y

          條件運(yùn)算符。如果 Condition 為真 ? 則值為 X : 否則值為 Y

          ,

          逗號(hào)運(yùn)算符會(huì)順序執(zhí)行一系列運(yùn)算。整個(gè)逗號(hào)表達(dá)式的值是以逗號(hào)分隔的列表中的最后一個(gè)表達(dá)式的值。

          .(點(diǎn))和 ->(箭頭)

          成員運(yùn)算符用于引用類、結(jié)構(gòu)和共用體的成員。

          Cast

          強(qiáng)制轉(zhuǎn)換運(yùn)算符把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,int(2.2000) 將返回 2

          &

          指針運(yùn)算符 &?返回變量的地址。例如 &a; 將給出變量的實(shí)際地址。

          *

          指針運(yùn)算符 *?指向一個(gè)變量。例如,*var; 將指向變量 var

          ?

          • C++的邏輯語句:

          -循環(huán)語句

          循環(huán)語句允許我們多次執(zhí)行一個(gè)語句或語句組

          6b94879983b56172ed70de6e9ed9b3ea.webp

          循環(huán)類型

          描述

          while ?循環(huán)

          當(dāng)給定條件為真時(shí),重復(fù)語句或語句組。它會(huì)在執(zhí)行循環(huán)主體之前測(cè)試條件。

          for 循環(huán)

          多次執(zhí)行一個(gè)語句序列,簡(jiǎn)化管理循環(huán)變量的代碼。

          do...while ?循環(huán)

          除了它是在循環(huán)主體結(jié)尾測(cè)試條件外,其他與 while 語句類似。

          嵌套循環(huán)

          您可以在 whilefor do..while 循環(huán)內(nèi)使用一個(gè)或多個(gè)循環(huán)

          循環(huán)控制語句

          控制語句

          描述

          break ?語句

          終止?loop??switch?語句,程序流將繼續(xù)執(zhí)行緊接著 loop switch 的下一條語句。

          continue ?語句

          引起循環(huán)跳過主體的剩余部分,立即重新開始測(cè)試條件。

          goto ?語句

          將控制轉(zhuǎn)移到被標(biāo)記的語句。但是不建議在程序中使用 goto 語句。

          -判斷語句

          判斷結(jié)構(gòu)要求程序員指定一個(gè)或多個(gè)要評(píng)估或測(cè)試的條件,以及條件為真時(shí)要執(zhí)行的語句(必需的)和條件為假時(shí)要執(zhí)行的語句(可選的)。

          cd0990ae84af6658512af4afa1196a00.webp

          語句

          描述

          if 語句

          一個(gè)?if 語句?由一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語句組成。

          if...else ?語句

          一個(gè)?if 語句?后可跟一個(gè)可選的?else 語句,else ?語句在布爾表達(dá)式為假時(shí)執(zhí)行。

          嵌套 if 語句

          您可以在一個(gè)?if??else if?語句內(nèi)使用另一個(gè)?if??else if?語句。

          switch ?語句

          一個(gè)?switch?語句允許測(cè)試一個(gè)變量等于多個(gè)值時(shí)的情況。

          嵌套 switch 語句

          您可以在一個(gè)?switch?語句內(nèi)使用另一個(gè)?switch?語句。

          --函數(shù)

          函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè) C++ 程序都至少有一個(gè)函數(shù),即主函數(shù)?main()?,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)。函數(shù)聲明告訴編譯器函數(shù)的名稱、返回類型和參數(shù)。函數(shù)定義提供了函數(shù)的實(shí)際主體。C++ 標(biāo)準(zhǔn)庫(kù)提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù)?strcat()?用來連接兩個(gè)字符串,函數(shù)?memcpy()?用來復(fù)制內(nèi)存到另一個(gè)位置。

          -返回類型:一個(gè)函數(shù)可以返回一個(gè)值。return_type?是函數(shù)返回的值的數(shù)據(jù)類型。有些函數(shù)執(zhí)行所需的操作而不返回值,在這種情況下,return_type 是關(guān)鍵字?void

          -函數(shù)名稱:這是函數(shù)的實(shí)際名稱。函數(shù)名和參數(shù)列表一起構(gòu)成了函數(shù)簽名。

          -參數(shù):參數(shù)就像是占位符。當(dāng)函數(shù)被調(diào)用時(shí),您向參數(shù)傳遞一個(gè)值,這個(gè)值被稱為實(shí)際參數(shù)。參數(shù)列表包括函數(shù)參數(shù)的類型、順序、數(shù)量。參數(shù)是可選的,也就是說,函數(shù)可能不包含參數(shù)。

          -函數(shù)主體:函數(shù)主體包含一組定義函數(shù)執(zhí)行任務(wù)的語句。

          函數(shù)參數(shù)

          調(diào)用類型

          描述

          傳值調(diào)用

          該方法把參數(shù)的實(shí)際值賦值給函數(shù)的形式參數(shù)。在這種情況下,修改函數(shù)內(nèi)的形式參數(shù)對(duì)實(shí)際參數(shù)沒有影響。

          指針調(diào)用

          該方法把參數(shù)的地址賦值給形式參數(shù)。在函數(shù)內(nèi),該地址用于訪問調(diào)用中要用到的實(shí)際參數(shù)。這意味著,修改形式參數(shù)會(huì)影響實(shí)際參數(shù)。

          引用調(diào)用

          該方法把參數(shù)的引用賦值給形式參數(shù)。在函數(shù)內(nèi),該引用用于訪問調(diào)用中要用到的實(shí)際參數(shù)。這意味著,修改形式參數(shù)會(huì)影響實(shí)際參數(shù)。

          默認(rèn)情況下,C++ 使用傳值調(diào)用來傳遞參數(shù)。一般來說,這意味著函數(shù)內(nèi)的代碼不能改變用于調(diào)用函數(shù)的參數(shù)。之前提到的實(shí)例,調(diào)用 max() 函數(shù)時(shí),使用了相同的方法。

          Lambda 函數(shù)與表達(dá)式

          Lambda 表達(dá)式把函數(shù)看作對(duì)象。Lambda 表達(dá)式可以像對(duì)象一樣使用,比如可以將它們賦給變量和作為參數(shù)傳遞,還可以像函數(shù)一樣對(duì)其求值。

          Lambda 表達(dá)式本質(zhì)上與函數(shù)聲明非常類似。Lambda 表達(dá)式具體形式如下:[capture](parameters)->return-type{body}

          內(nèi)置函數(shù)

          引用數(shù)學(xué)頭文件?<cmath>

          序號(hào)

          函數(shù) & 描述

          1

          double cos(double);
          ?
          該函數(shù)返回弧度角(double 型)的余弦。

          2

          double sin(double);
          ?
          該函數(shù)返回弧度角(double 型)的正弦。

          3

          double tan(double);
          ?
          該函數(shù)返回弧度角(double 型)的正切。

          4

          double log(double);
          ?
          該函數(shù)返回參數(shù)的自然對(duì)數(shù)。

          5

          double pow(double, double);
          ?
          假設(shè)第一個(gè)參數(shù)為 x,第二個(gè)參數(shù)為 y,則該函數(shù)返回 x y 次方。

          6

          double hypot(double, double);
          ?
          該函數(shù)返回兩個(gè)參數(shù)的平方總和的平方根,也就是說,參數(shù)為一個(gè)直角三角形的兩個(gè)直角邊,函數(shù)會(huì)返回斜邊的長(zhǎng)度。

          7

          double sqrt(double);
          ?
          該函數(shù)返回參數(shù)的平方根。

          8

          int abs(int);
          ?
          該函數(shù)返回整數(shù)的絕對(duì)值。

          9

          double fabs(double);
          ?
          該函數(shù)返回任意一個(gè)浮點(diǎn)數(shù)的絕對(duì)值。

          10

          double floor(double);
          ?
          該函數(shù)返回一個(gè)小于或等于傳入?yún)?shù)的最大整數(shù)。

          ?

          • C++ 的類與對(duì)象

          -C++ 類定義

          定義一個(gè)類,本質(zhì)上是定義一個(gè)數(shù)據(jù)類型的藍(lán)圖。這實(shí)際上并沒有定義任何數(shù)據(jù),但它定義了類的名稱意味著什么,也就是說,它定義了類的對(duì)象包括了什么,以及可以在這個(gè)對(duì)象上執(zhí)行哪些操作。

          70367a83e958d0ead8e1e59178380920.webp

          -定義 C++ 對(duì)象

          類提供了對(duì)象的藍(lán)圖,所以基本上,對(duì)象是根據(jù)類來創(chuàng)建的。聲明類的對(duì)象,就像聲明基本類型的變量一樣。

          & 對(duì)象詳解

          到目前為止,我們已經(jīng)對(duì) C++ 的類和對(duì)象有了基本的了解。下面的列表中還列出了其他一些 C++ 類和對(duì)象相關(guān)的概念,可以點(diǎn)擊相應(yīng)的鏈接進(jìn)行學(xué)習(xí)。

          概念

          描述

          類成員函數(shù)

          類的成員函數(shù)是指那些把定義和原型寫在類定義內(nèi)部的函數(shù),就像類定義中的其他變量一樣。

          類訪問修飾符

          類成員可以被定義為 publicprivate protected。默認(rèn)情況下是定義為 private

          構(gòu)造函數(shù) & 析構(gòu)函數(shù)

          類的構(gòu)造函數(shù)是一種特殊的函數(shù),在創(chuàng)建一個(gè)新的對(duì)象時(shí)調(diào)用。類的析構(gòu)函數(shù)也是一種特殊的函數(shù),在刪除所創(chuàng)建的對(duì)象時(shí)調(diào)用。

          C++ 拷貝構(gòu)造函數(shù)

          拷貝構(gòu)造函數(shù),是一種特殊的構(gòu)造函數(shù),它在創(chuàng)建對(duì)象時(shí),是使用同一類中之前創(chuàng)建的對(duì)象來初始化新創(chuàng)建的對(duì)象。

          C++ 友元函數(shù)

          友元函數(shù)可以訪問類的 private protected 成員。

          C++ 內(nèi)聯(lián)函數(shù)

          通過內(nèi)聯(lián)函數(shù),編譯器試圖在調(diào)用函數(shù)的地方擴(kuò)展函數(shù)體中的代碼。

          C++ 中的 this 指針

          每個(gè)對(duì)象都有一個(gè)特殊的指針?this,它指向?qū)ο蟊旧怼?/span>

          C++ 中指向類的指針

          指向類的指針方式如同指向結(jié)構(gòu)的指針。實(shí)際上,類可以看成是一個(gè)帶有函數(shù)的結(jié)構(gòu)。

          C++ 類的靜態(tài)成員

          類的數(shù)據(jù)成員和函數(shù)成員都可以被聲明為靜態(tài)的。

          -對(duì)象繼承

          面向?qū)ο蟪绦蛟O(shè)計(jì)中最重要的一個(gè)概念是繼承。繼承允許我們依據(jù)另一個(gè)類來定義一個(gè)類,這使得創(chuàng)建和維護(hù)一個(gè)應(yīng)用程序變得更容易。這樣做,也達(dá)到了重用代碼功能和提高執(zhí)行效率的效果。

          be05a03bba629c35ad340f6530c9cfd1.webp

          當(dāng)創(chuàng)建一個(gè)類時(shí),您不需要重新編寫新的數(shù)據(jù)成員和成員函數(shù),只需指定新建的類繼承了一個(gè)已有的類的成員即可。這個(gè)已有的類稱為基類,新建的類稱為派生類。

          繼承代表了?isa?關(guān)系。例如,哺乳動(dòng)物是動(dòng)物,狗是哺乳動(dòng)物,因此,狗是動(dòng)物,等等。

          訪問修飾符access-specifier ?publicprotected??private?其中的一個(gè),base-class 是之前定義過的某個(gè)類的名稱。如果未使用訪問修飾符 access-specifier,則默認(rèn)為 private

          訪問控制和繼承

          派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函數(shù)訪問,則應(yīng)在基類中聲明為 private

          我們可以根據(jù)訪問權(quán)限總結(jié)出不同的訪問類型,如下所示:

          訪問

          public

          protected

          private

          同一個(gè)類

          yes

          yes

          yes

          派生類

          yes

          yes

          no

          外部的類

          yes

          no

          no

          ?-C++?接口(抽象類)

          接口描述了類的行為和功能,而不需要完成類的特定實(shí)現(xiàn)。

          C++?接口是使用抽象類來實(shí)現(xiàn)的,抽象類與數(shù)據(jù)抽象互不混淆,數(shù)據(jù)抽象是一個(gè)把實(shí)現(xiàn)細(xì)節(jié)與相關(guān)的數(shù)據(jù)分離開的概念。如果類中至少有一個(gè)函數(shù)被聲明為純虛函數(shù),則這個(gè)類就是抽象類。純虛函數(shù)是通過在聲明中使用?"= 0"?來指定的設(shè)計(jì)抽象類(通常稱為?ABC)的目的,是為了給其他類提供一個(gè)可以繼承的適當(dāng)?shù)幕悺3橄箢惒荒鼙挥糜趯?shí)例化對(duì)象,它只能作為接口使用。如果試圖實(shí)例化一個(gè)抽象類的對(duì)象,會(huì)導(dǎo)致編譯錯(cuò)誤。


          • C++的重要概念

          -重載運(yùn)算符和重載函數(shù)

          C++ 允許在同一作用域中的某個(gè)函數(shù)和運(yùn)算符指定多個(gè)定義,分別稱為函數(shù)重載和運(yùn)算符重載。

          重載聲明是指一個(gè)與之前已經(jīng)在該作用域內(nèi)聲明過的函數(shù)或方法具有相同名稱的聲明,但是它們的參數(shù)列表和定義(實(shí)現(xiàn))不相同。

          當(dāng)您調(diào)用一個(gè)重載函數(shù)或重載運(yùn)算符時(shí),編譯器通過把您所使用的參數(shù)類型與定義中的參數(shù)類型進(jìn)行比較,決定選用最合適的定義。選擇最合適的重載函數(shù)或重載運(yùn)算符的過程,稱為重載決策。

          C++ 中的函數(shù)重載

          在同一個(gè)作用域內(nèi),可以聲明幾個(gè)功能類似的同名函數(shù),但是這些同名函數(shù)的形式參數(shù)(指參數(shù)的個(gè)數(shù)、類型或者順序)必須不同。您不能僅通過返回類型的不同來重載函數(shù)。

          C++ 中的運(yùn)算符重載

          您可以重定義或重載大部分 C++ 內(nèi)置的運(yùn)算符。這樣,您就能使用自定義類型的運(yùn)算符。

          重載的運(yùn)算符是帶有特殊名稱的函數(shù),函數(shù)名是由關(guān)鍵字 operator 和其后要重載的運(yùn)算符符號(hào)構(gòu)成的。與其他函數(shù)一樣,重載運(yùn)算符有一個(gè)返回類型和一個(gè)參數(shù)列表。

          可重載運(yùn)算符/不可重載運(yùn)算符

          下面是可重載的運(yùn)算符列表:

          雙目算術(shù)運(yùn)算符

          + ()-()*()/()%?(取模)

          關(guān)系運(yùn)算符

          ==(等于)!= ?(不等于)< (小于)> ?(大于)<=(小于等于)>=(大于等于)

          邏輯運(yùn)算符

          ||(邏輯或)&&(邏輯與)!(邏輯非)

          單目運(yùn)算符

          + ()-(負(fù))*(指針)&(取地址)

          自增自減運(yùn)算符

          ++(自增)--(自減)

          位運(yùn)算符

          | (按位或)& ?(按位與)~(按位取反)^(按位異或),<<?(左移)>>(右移)

          賦值運(yùn)算符

          =, +=, -=, *=, /= , % = , &=, |=, ^=, ?<<=, >>=

          空間申請(qǐng)與釋放

          new, delete, new[ ] , delete[]

          其他運(yùn)算符

          ()(函數(shù)調(diào)用)->(成員訪問),(逗號(hào))[](下標(biāo))

          下面是不可重載的運(yùn)算符列表:

          .:成員訪問運(yùn)算符

          .*,?->*:成員指針訪問運(yùn)算符

          :::域運(yùn)算符

          sizeof:長(zhǎng)度運(yùn)算符

          ?::條件運(yùn)算符

          #預(yù)處理符號(hào)

          ?-多態(tài)

          多態(tài)按字面的意思就是多種形態(tài)。當(dāng)類之間存在層次結(jié)構(gòu),并且類之間是通過繼承關(guān)聯(lián)時(shí),就會(huì)用到多態(tài)。C++ 多態(tài)意味著調(diào)用成員函數(shù)時(shí),會(huì)根據(jù)調(diào)用函數(shù)的對(duì)象的類型來執(zhí)行不同的函數(shù)。

          靜態(tài)鏈接?- 函數(shù)調(diào)用在程序執(zhí)行前就準(zhǔn)備好了。有時(shí)候這也被稱為早綁定,因?yàn)?/span> area() 函數(shù)在程序編譯期間就已經(jīng)設(shè)置好了。

          虛函數(shù)?是在基類中使用關(guān)鍵字?virtual?聲明的函數(shù)。在派生類中重新定義基類中定義的虛函數(shù)時(shí),會(huì)告訴編譯器不要靜態(tài)鏈接到該函數(shù)。

          我們想要的是在程序中任意點(diǎn)可以根據(jù)所調(diào)用的對(duì)象類型來選擇調(diào)用的函數(shù),這種操作被稱為動(dòng)態(tài)鏈接,或后期綁定。

          想要在基類中定義虛函數(shù),以便在派生類中重新定義該函數(shù)更好地適用于對(duì)象,但是您在基類中又不能對(duì)虛函數(shù)給出有意義的實(shí)現(xiàn),這個(gè)時(shí)候就會(huì)用到純虛函數(shù)。

          ??-數(shù)據(jù)封裝

          數(shù)據(jù)抽象是指,只向外界提供關(guān)鍵信息,并隱藏其后臺(tái)的實(shí)現(xiàn)細(xì)節(jié),即只表現(xiàn)必要的信息而不呈現(xiàn)細(xì)節(jié)。數(shù)據(jù)抽象是一種依賴于接口和實(shí)現(xiàn)分離的編程(設(shè)計(jì))技術(shù)。

          數(shù)據(jù)抽象有兩個(gè)重要的優(yōu)勢(shì):

          -類的內(nèi)部受到保護(hù),不會(huì)因無意的用戶級(jí)錯(cuò)誤導(dǎo)致對(duì)象狀態(tài)受損。

          -類實(shí)現(xiàn)可能隨著時(shí)間的推移而發(fā)生變化,以便應(yīng)對(duì)不斷變化的需求,或者應(yīng)對(duì)那些要求不改變用戶級(jí)代碼的錯(cuò)誤報(bào)告。

          ?-數(shù)據(jù)封裝

          所有的 C++ 程序都有以下兩個(gè)基本要素:

          程序語句(代碼):這是程序中執(zhí)行動(dòng)作的部分,它們被稱為函數(shù)。

          程序數(shù)據(jù):數(shù)據(jù)是程序的信息,會(huì)受到程序函數(shù)的影響。

          封裝是面向?qū)ο缶幊讨械陌褦?shù)據(jù)和操作數(shù)據(jù)的函數(shù)綁定在一起的一個(gè)概念,這樣能避免受到外界的干擾和誤用,從而確保了安全。數(shù)據(jù)封裝引申出了另一個(gè)重要的 OOP 概念,即數(shù)據(jù)隱藏。

          數(shù)據(jù)封裝是一種把數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)捆綁在一起的機(jī)制,數(shù)據(jù)抽象是一種僅向用戶暴露接口而把具體的實(shí)現(xiàn)細(xì)節(jié)隱藏起來的機(jī)制。

          數(shù)據(jù)封裝的實(shí)例

          C++ 程序中,任何帶有公有和私有成員的類都可以作為數(shù)據(jù)封裝和數(shù)據(jù)抽象的實(shí)例。


          • 參考資料:

          C++?教程?|?菜鳥教程?(runoob.com)

          https://www.runoob.com/cplusplus/cpp-tutorial.html


          公眾號(hào)二維碼

          End:如果有興趣了解量化交易、數(shù)據(jù)分析和互聯(lián)網(wǎng)+的實(shí)用技術(shù),歡迎關(guān)注本公眾號(hào)

          瀏覽 43
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看黄色视频网站 | 毛片播放网站 | 红桃视频波多野结衣 | 大香蕉伊人在线视频观看最新 | 无码人妻精品一区二区蜜桃在线看 |