亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

趣味 C++ 進階

難度初級
時長 8小時 0分
學習人數
綜合評分9.60
10人評價 查看評價
10.0 內容實用
8.8 簡潔易懂
10.0 邏輯清晰
  • const 修飾成員函數 const 修飾的成員函數不能修改任何的成員變量 class A { public: int aaa; int funcA() const { aaa = 20; // 這行代碼會報錯 return 0; } } 代碼塊預覽復制 const 成員函數不能調用非 const 成員函數 class A { public: int aaa; int funcA() const { funcB(); // 這行代碼會報錯 return 0; } int funcB() { return 0; } }
    查看全部
  • const 修飾指針 const 修飾指針可以分為多種情況: 只有一個 const,如果 const 位*左側,表示指針所指數據是常量,不能通過解引用修改該數據;指針本身是變量,可以指向其他的內存單元 int aaa = 20; int bbb = 30; const int * constPoint = &aaa; constPoint = &bbb; *constPoint = 80; // 這行代碼會報錯 代碼塊預覽復制 只有一個 const,如果 const 位于*右側,表示指針本身是常量,不能指向其他內存地址;指針所指的數據可以通過解引用修改 int aaa = 20; int bbb = 30; int * const constPoint = &aaa; constPoint = &bbb; // 這行代碼會報錯 *constPoint = 80; 代碼塊預覽復制 兩個 const,*左右各一個,表示指針和指針所指數據都不能修改 int aaa = 20; int bbb = 30; const int * const constPoint = &aaa; constPoint = &bbb; // 這行代碼會報錯 *constPoint = 80; // 這行代碼會報錯
    查看全部
  • const int a = 20; 代碼塊預覽復制 則表示 a 是一個常量,你不可以在后續對其進行修改。因為 a 不可修改,所以在創建的時候就要對 a 進行賦值,不對其進行賦值則會報錯。例如,下面的代碼就會報錯 const int a;
    查看全部
  • 正是由于 NULL 會導致這樣的混亂,所以在 C++11 標準之后,C++ 標準委員會為 C++ 添加了 nullptr 關鍵字。我們可以將 NULL 賦值給一個普通變量,而 nullptr 卻不能。 int a = nullptr; 代碼塊預覽復制 這樣是會直接報錯的。 nullptr 只能賦值給指針,所以不會有 NULL 那樣的問題。 所以,只要你的編譯器兼容 C++11 標準,那么你應該使用 nullptr
    查看全部
    0 采集 收起 來源:C++ 中的空指針

    2021-07-21

  • 因為在 C++ 中,0 地址通常是被保護起來的,不可訪問的。因此用 0 地址來指代這個指針哪里都不指,是可以的。但是這里面卻存在一些問題。因為 NULL 就是 0,所以我們可以把 NULL 用在其他地方
    查看全部
    0 采集 收起 來源:C++ 中的空指針

    2021-07-21

  • 我們通過強制轉換來指定 func 執行的是哪個。這個過程是在編譯階段就將函數實現和函數調用關聯起來,因此靜態聯編也叫早綁定,在編譯階段就必須了解所有的函數或模塊執行所需要檢測的信息。 動態編聯 除了靜態編聯之外,C++ 還支持動態編聯。動態聯編是指聯編在程序運行時動態地進行,根據當時的情況來確定調用哪個同名函數,實際上是在運行時虛函數的實現。
    查看全部
  • 將一個指針的類型做成強轉,然后調用 func 函數,就會發現, func 函數會隨著被強轉的類型的變換而變換,這種函數的關聯過程稱為編聯。按照聯編所進行的階段不同,可分為兩種不同的聯編方法:靜態聯編和動態聯編。
    查看全部
  • 多態,就是子類和父類有一個共同的函數名,但實現的功能不一樣,我們可以通過顯式轉換或隱士轉換來調用到不同的功能函數。子類可以直接隱式的轉換為父類,但要將父類轉換為子類實現的函數,就要用顯式的方式來實現
    查看全部
  • 我們其實可以把一個員工強行轉化成程序員,但是這就有可能出問題,就如同我們把 long long 轉成 int 就有可能出現問題。 int main(int argc,char **argv) { Coder * coder = new Coder(); Staff * staff = coder; // 隱式轉換就可以 Coder * coder = (Coder *)staff; // 必須顯式轉換 return 0; }
    查看全部
  • 類之間也可以相互轉換。類的轉換主要是在父類和子類之間的轉換。
    查看全部
  • long long a = 100; int b = (int)a; 這里是大類型轉小類型,所以要顯式轉換。這種轉換可能會損失精度,是需要我們程序員掌控的
    查看全部
  • 例如,我們可以把 int 轉成 long long。 int a = 100; long long b = a; 代碼塊預覽復制 由于是小類型轉大類型,所以這里使用隱式轉換就可以了。
    查看全部
  • int main(int argc,char **argv) { Child * obj = new Child(); Base * baseobj = (Base *)obj; baseobj->func(); delete obj; return 0; } 我們把這個 Child 指針強轉成 Base 指針,結果會是父類的func結果
    查看全部
  • 在 C++ 中,對父類成員的權限,子類中可以進行重新的定義,這個定義就是通過繼承時候寫的public 來實現的。 可以看到,我們在上述程序中使用了 public 修飾符,那么父類中的成員函數和成員變量將會保持父類的權限。這種是使用最廣泛的繼承方式,我們把它叫做公有繼承。
    查看全部
  • 除了具有 Staff 的所有內容之外,Coder 還有屬于自己的動作,那就是寫代碼,我們就可以這樣寫: class Coder : public Staff { public: void code() { printf("Coding!!!\n"); } };
    查看全部

舉報

0/150
提交
取消
課程須知
你需要具備基礎的 C++ 語法知識,在學習本課程之前,建議先學習《趣味 C++ 入門》,快速認識 C++,熟悉 C++ 基本語法,更加快速入手進階課程!
老師告訴你能學到什么?
在本門課程中,你將學習到:計算機存儲數據的原理、指針的進階、面向對象編程、內存管理技巧等 C++ 高級語法。在課程的最后,將帶領大家使用 C++ 編寫一個五子棋游戲,通過實踐,加深理解,鞏固學習成果。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!