日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

突破C++瓶颈,在此一举!

發布時間:2024/4/14 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 突破C++瓶颈,在此一举! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

課程介紹

C++ 不僅能兼容 C 語言,并且還繼承了 C 語言的運行速度,因此在許多大型項目中都可以看到 C++ 的身影。封裝、繼承、多態、模板作為 C++ 的重要特性。掌握封裝、繼承、多態、模板對提高開發效率有著很明顯的提升。

本課程容納了很多知識點和實驗操作,學習本課程的關鍵因素在于動手去做,多做實驗并要做相關的記錄,這都將是以后開發中的寶貴經驗。

本課程共 21 個實驗章節,主要針對封裝、繼承、多態、模板這 4 個特性作為基礎進行講解實驗,并且圍繞這 4 個特性講解了很多與之相關的其他知識點。

課程難度

較難

適合人群

  • 對 C 語言或者 C++ 有基礎知識的同學
  • 想要在 C++ 繼續深入學習的同學
  • 想進入 C++ 實戰的同學

只要課程有一點啟發,那就是一個重大的提升,本課程也許就是你突破瓶頸的機會,不論你是準備進軍 C++ 開發的準程序員還是混跡職場的 C++ 開發程序員,都可以深入學習!

第一章 認識類與對象

知識點

  • 認識類與對象
  • 內聯函數
  • string 類
  • 類的定義與實例化

官方定義

:在面向對象編程中是一種面向對象計算機編程語言的構造,是創建對象的藍圖,描述了所創建的對象共同的屬性和方法。

對象:通過類創建出對象,又稱實例化對象。

深入理解類

類是 C++ 的核心特性,在 C++ 的世界中,可以將所有事物都看作為一個對象,將對象進行封裝之后成為一個類,通常被稱為用戶定義類型。

例如:可以將貓、狗、鳥、桌子、學生、人、三角形、矩形等都封裝為一個類,只要在實際編程中用到的都可以抽象封裝為一個類。

C++ 相關概念

概念描述
構造函數類的構造函數是一種特殊的函數,在創建一個新的對象時自動調用
析構函數類的析構函數也是一種特殊的函數,在刪除所創建的對象時自動調用
拷貝構造函數拷貝構造函數,是一種特殊的構造函數,它在創建對象時,是使用同一類中之前創建的對象來初始化新創建的對象
友元函數友元函數可以訪問類的 private 和 protected 成員
內聯函數通過內聯函數,編譯器試圖在調用函數的地方擴展函數體中的代碼
類成員函數類的成員函數是指那些把定義和原型寫在類定義內部的函數,就像類定義中的其他變量一樣
類訪問修飾符類成員可以被定義為 public、private 或 protected。默認情況下是定義為 private
this 指針每個對象都有一個特殊的指針 this,它指向對象本身
靜態成員類的數據成員和成員函數都可以被聲明為靜態的

自定義類

假設最近在做一個學校管理系統的項目,首先想到可以將學生定義為一個類,然后發現可以在學生類的基礎上再抽象出一個人類的對象,如果需要用到學生的學科,可以進一步將學科也封裝為一個,還可以封裝文件操作類,數據庫操作類等等。

類定義注意事項:

  • 定義一個類時,需要使用關鍵字 class 來進行修飾。
  • 一個簡單的類可以沒有構造函數和析構函數,但是系統自動生成一個默認的構造函數和析構函數。
  • 在類中使用關鍵字 public 、 private 和 protected 來限制數據成員和成員函數,一般使用 public 和 private 來修飾數據成員和成員函數。
  • 一般將數據成員封裝在 private 關鍵字下,不讓用戶直接訪問數據成員,而是通過成員函數來進行訪問。
  • 在類的最后(大括號后)必須要有一個逗號,勿忘。
  • 實例化對象

    實例化對象有兩種方式,一種是在棧上實例化,另一種是在堆上實例化。

    實例化對象注意事項:

  • 在棧上實例化的對象,超出定義域對象資源會自動被系統回收。
  • 在堆上實例化的對象,最后需要使用 delete 關鍵字來釋放內存,否則會造成內存泄漏。
  • 使用棧實例化的對象使用 “.” 來訪問數據成員或成員函數,在堆上實例化的對象使用 “->” 來訪問數據成員或成員函數。
  • 釋放完內存后將對象置空,防止野指針。
  • string 類

    C++ 標準庫:前人開發時編寫的類,并被收錄成為通用的標準類,之后的人開發時可以直接使用,避免重復造輪子。string 類是開發時經常會使用到的一個類。

    string 類是 C++ 標準庫中的字符串類,專用于字符串操作,接下來介紹一下如何使用 string 類。

    string 介紹

  • string 類頭文件 #include<string>。
  • string 類在 std 命名空間內。
  • 使用 string 實例化一個字符串類型的對象。
  • 對字符串對象執行例如拼接、查找等操作。
  • string 初始化方式

    實例化解釋
    string s1;s1 為空字符串
    string s2(“ABC”);s2 初始值為 “ABC”
    string s3 = s2; string s3(s2);s3 初始化為 s2 的一個副本
    string s4(n, ‘c’ );s4 初始化為字符 ‘c’ 的 n 個副本

    string 常用操作

    以下列出了 string 經常使用的操作,如果還需要用到其他操作可以在 官網 查找 string 類的相關使用方法,里面配有示例程序。

    操作解釋
    s.empty()判斷 s 是否為空,如果 s 為空返回 true,否則返回 false
    s.size()返回 s 中字符的個數,和 s.length() 功能相同
    s[n]返回 s 中位置 n 的字符,位置從0開始。切記不要越界
    s1 + s2將 s1 和 s2 連接成新字符串,返回新字符串
    s1 = s2賦值,將 s2 內容賦值給 s1
    s1 == s2判斷相等,相等返回 true,否則返回 false
    s1 != s2判斷不等,不等返回 true,否則返回 false
    s.c_str()返回 char*,和 s.data() 功能相同
    stoi()字符串轉 int,還有 stol(),stoll()
    stof()字符串轉 float, 還有 stod(),stold()

    內聯函數

    官方定義:內聯函數又是稱作 “在線函數” 或者 “編譯時期展開函數” 的一種編程語言結構,用來建議編譯器對一些特殊函數進行內聯擴展;也就是說建議編譯器將制定的函數體插入并取代每一次調用該函數的地方,從而節省每次調用函數帶來的額外時間開支。

  • 定義內聯函數關鍵字:inline。
  • 內聯分為普通內聯函數和類內聯函數。
  • 定義內聯函數時一般使用于簡單的函數,如果函數比較復雜,編譯器也將自動取消內聯。
  • 編譯過程

    類內聯函數

    如下圖是使用類內定義一個類的方法(“類的定義域實例化” 小節中會講到類內定義),而使用類內定義的成員函數編譯器會默認將成員函數當做為內聯函數進行編譯。但如果成員函數比較復雜,編譯器也不會將成員函數當做內聯函數進行編譯。

  • 編譯器在編譯時會將內聯函數直接插入到調用內聯函數處,這樣可以減去調用函數時的開銷。
  • 在實際開發過程中,可以酌情考慮使用類內定義的方法實現類成員函數。
  • 類的定義與實例化

    在學習本小節之前先來學習另外兩個知識點:

    • 類內定義
    • 類外定義

    類內定義

    類內定義即在類中實現成員函數。

    在課程的示例代碼中,類中定義的成員函數都是使用的類內定義的方式實現的,在實際的開發中不建議這樣做,除非是定義一個非常簡單的類或者成員函數。

    在內聯函數小節中提到過,類內定義的方式編譯器會自動嘗試將成員函數作為內聯函數進行編譯,如果成員函數比較復雜,編譯器將不會作為內聯函數進行編譯。

    在實際開發過程中需要考慮到程序的架構問題,類內定義適用于一個相對比較簡單的程序,考慮到開發時的方便性和時間成本,類外定義是實際程序開發中常用的方法。

    類外定義

    類外定義有兩種方式:

  • 同文件類外定義。
  • 分文件類外定義。
  • 同文件類外定義就是將類的成員函數定義在類之外的地方,同時類的成員函數使用類作用域來進行定義。在實際項目開發中,類不是很復雜時可以使用該方法,類比較復雜時不推薦使用。

    分文件定義類就是將類的定義放在 xxx.h 頭文件中,而類的成員函數實現放在 xxx.cpp 文件中。這種做法是做項目時推薦使用的方法,因為這樣將類的定義和成員函數分開后,在開發時很容易能夠查找到對應的定義和成員函數。

    一般情況下文件名和類名相同,便于開發時類管理。

    第一章知識點總結

    • 深入認識類與對象并講解 C++ 相關概念。
    • 如何使用 string 類。
    • 普通內聯函數與類內聯函數以及編譯器對內聯函數的處理。
    • 學習類內定義與類外定義,開發時常使用分文件類外定義的方法。
    • main 函數的返回值為 int 類型,注意不要寫成 void 類型。

    剩余章節內容,點擊《C++ 進階應用實戰》即可學習。

    總結

    以上是生活随笔為你收集整理的突破C++瓶颈,在此一举!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。