産品特色
編輯推薦
《Visual C++ 2012入門經典(第6版)》升級版本,第七版
編程導師Ivor Horton經典作品,連續十五年
作者經典作品包含:《C語言入門經典(第5版)》《 C++入門經典(第3版)》《Java 7入門經典》
Ivor Horton經典作品:
內容簡介
著名編程圖書作傢Ivor Horton引導學習Visual C++ 2013這本C++語言暢銷書遵循Ivor Horton一貫的暢銷風格。Horton非常詳盡地介紹瞭標準C++語言和Visual C++。
《Visual C++ 2013入門經典(第7版)》根據Visual C++ 2013進行瞭更新,展示瞭如何使用Visual C++建立實用的應用程序。閱讀本書不需要任何編程經驗。作者使用大量循序漸進的編程示例,引導讀者掌握C++開發的全部奧秘。
《Visual C++ 2013入門經典(第7版)》特色
◆ 介紹C++編程的基本概念以及Visual C++開發環境的要點
◆ 從簡單的過程式程序開始解釋C++語言,逐步過渡到類和麵嚮對象編程
◆ 演示如何在各種環境下應用標準模闆庫(STL)
◆ 揭示每個Windows桌麵應用程序中的基本元素
◆ 展示如何使用MFC建立圖形用戶界麵以編寫Windows應用程序
◆ 通過一個在Windows 8下執行的遊戲示例,說明如何開發Windows Store應用程序
作者簡介
Ivor Horton,是世界著名計算機圖書作傢,獨立顧問,幫助無數程序員步入編程殿堂。他曾在IBM工作多年,以優異成績擁有數學學士學位。他的資曆包括:使用大多數語言(如在多種機器上使用匯編語言和高級語言)進行編程,實時編程,設計和實現實時閉環工業控製係統。Horton擁有豐富的麵嚮工程師和科學傢的編程教學經驗(教學內容包括C、C++、Fortran、PL/1、APL等)。同時,他還是機械、加工和電子CAD係統、機械CAM係統和DNC/CNC係統方麵的專傢。
目錄
第1章 使用Visual C++編程 1
1.1 使用Visual C++學習 1
1.2 編寫C++應用程序 2
1.3 學習桌麵應用程序的編程 2
1.3.1 學習C++ 3
1.3.2 C++概念 3
1.3.3 控製颱應用程序 4
1.3.4 Windows編程概念 4
1.4 集成開發環境簡介 6
1.4.1 編輯器 6
1.4.2 編譯器 6
1.4.3 鏈接器 6
1.4.4 庫 7
1.4.5 標準C++庫 7
1.4.6 Microsoft庫 7
1.5 使用IDE 7
1.5.1 工具欄選項 8
1.5.2 可停靠的工具欄 9
1.5.3 文檔 9
1.5.4 項目和解決方案 9
1.5.5 設置Visual C++的選項 16
1.5.6 創建和執行Windows應用程序 17
1.6 小結 19
1.7 本章主要內容 19
第2章 數據、變量和計算 21
2.1 C++程序結構 21
2.1.1 main()函數 28
2.1.2 程序語句 28
2.1.3 空白 30
2.1.4 語句塊 30
2.1.5 自動生成的控製颱程序 30
2.2 定義變量 32
2.2.1 命名變量 32
2.2.2 關鍵字 32
2.2.3 聲明變量 33
2.2.4 變量的初始值 33
2.3 基本數據類型 34
2.3.1 整型變量 34
2.3.2 字符數據類型 35
2.3.3 整型修飾符 36
2.3.4 布爾類型 36
2.3.5 浮點類型 37
2.3.6 C++中的基本類型 37
2.3.7 字麵值 38
2.3.8 定義類型的彆名 39
2.4 基本的輸入/輸齣操作 40
2.4.1 從鍵盤輸入 40
2.4.2 到命令行的輸齣 40
2.4.3 格式化輸齣 41
2.4.4 轉義序列 42
2.5 C++中的計算 44
2.5.1 賦值語句 44
2.5.2 算術運算 44
2.5.3 計算餘數 49
2.5.4 修改變量 49
2.5.5 增量和減量運算符 50
2.5.6 計算的順序 52
2.6 類型轉換和類型強製轉換 53
2.6.1 賦值語句中的類型轉換 54
2.6.2 顯式類型轉換 54
2.6.3 老式的類型強製轉換 55
2.7 auto關鍵字 55
2.8 類型的確定 56
2.9 按位運算符 56
2.9.1 按位AND運算符 57
2.9.2 按位OR運算符 58
2.9.3 按位XOR運算符 59
2.9.4 按位NOT運算符 60
2.9.5 移位運算符 60
2.10 lvalue和rvalue 61
2.11 瞭解存儲時間和作用域 62
2.11.1 自動變量 62
2.11.2 決定變量聲明的位置 65
2.11.3 全局變量 65
2.11.4 靜態變量 68
2.12 具有特定值集的變量 68
2.12.1 舊枚舉 68
2.12.2 類型安全的枚舉 70
2.13 名稱空間 72
2.13.1 聲明名稱空間 73
2.13.2 多個名稱空間 74
2.14 小結 75
2.15 練習 75
2.16 本章主要內容 76
第3章 判斷和循環 79
3.1 比較數據值 79
3.1.1 if語句 80
3.1.2 嵌套的if語句 81
3.1.3 嵌套的if-else語句 85
3.1.4 邏輯運算符和錶達式 87
3.1.5 條件運算符 89
3.1.6 switch語句 91
3.1.7 無條件轉移 94
3.2 重復執行語句塊 95
3.2.1 循環的概念 95
3.2.2 for循環的變體 98
3.2.3 while循環 105
3.2.4 do-while循環 107
3.2.5 基於範圍的循環 108
3.2.6 嵌套的循環 108
3.3 小結 111
3.4 練習 111
3.5 本章主要內容 111
第4章 數組、字符串和指針 113
4.1 處理多個相同類型的數據值 113
4.1.1 數組 114
4.1.2 聲明數組 114
4.1.3 初始化數組 117
4.1.4 使用基於範圍的for循環 118
4.1.5 多維數組 119
4.2 處理C樣式的字符串 123
4.2.1 字符串輸入 124
4.2.2 字符串字麵量 125
4.2.3 給字符串使用基於範圍的for循環 126
4.3 間接數據訪問 128
4.3.1 指針的概念 128
4.3.2 聲明指針 128
4.3.3 使用指針 129
4.3.4 初始化指針 130
4.3.5 指嚮char類型的指針 132
4.3.6 sizeof操作符 136
4.3.7 常量指針和指嚮常量的指針 136
4.3.8 指針和數組 138
4.4 動態內存分配 144
4.4.1 堆的彆名—— 空閑存儲器 144
4.4.2 new和delete操作符 145
4.4.3 為數組動態分配內存 146
4.4.4 多維數組的動態分配 148
4.5 使用引用 149
4.5.1 引用的概念 149
4.5.2 聲明並初始化lvalue引用 149
4.5.3 在基於範圍的for循環中
使用引用 150
4.5.4 創建rvalue引用 151
4.6 字符串的庫函數 151
4.6.1 確定以空字符結尾的字符串的長度 152
4.6.2 連接以空字符結尾的字符串 152
4.6.3 復製以空字符結尾的字符串 153
4.6.4 比較以空字符結尾的字符串 154
4.6.5 搜索以空字符結尾的字符串 154
4.7 小結 156
4.8 練習 156
4.9 本章主要內容 157
第5章 程序結構(1) 159
5.1 理解函數 159
5.1.1 需要函數的原因 160
5.1.2 函數的結構 161
5.1.3 替代的函數語法 163
5.1.4 使用函數 163
5.2 給函數傳遞實參 166
5.2.1 按值傳遞機製 167
5.2.2 給函數傳遞指針實參 168
5.2.3 給函數傳遞數組 169
5.2.4 給函數傳遞引用實參 173
5.2.5 使用const修飾符 175
5.2.6 rvalue引用形參 176
5.2.7 main()函數的實參 178
5.2.8 接受數量不定的函數實參 179
5.3 從函數返迴值 181
5.3.1 返迴指針 181
5.3.2 返迴引用 184
5.3.3 函數中的靜態變量 186
5.4 遞歸函數調用 188
5.5 小結 191
5.6 練習 191
5.7 本章主要內容 192
第6章 程序結構(2) 193
6.1 函數指針 193
6.1.1 聲明函數指針 194
6.1.2 函數指針作為實參 196
6.1.3 函數指針的數組 198
6.2 初始化函數形參 198
6.3 異常 200
6.3.1 拋齣異常 202
6.3.2 捕獲異常 202
6.3.3 重新拋齣異常 204
6.3.4 MFC中的異常處理 204
6.4 處理內存分配錯誤 205
6.5 函數重載 206
6.5.1 函數重載的概念 207
6.5.2 引用類型和重載選擇 209
6.5.3 何時重載函數 210
6.6 函數模闆 210
6.7 使用decltype操作符 212
6.8 使用函數的示例 215
6.8.1 實現計算器 215
6.8.2 從字符串中刪除空格 217
6.8.3 計算錶達式的值 218
6.8.4 獲得項值 220
6.8.5 分析數 221
6.8.6 整閤程序 224
6.8.7 擴展程序 225
6.8.8 提取子字符串 227
6.8.9 運行修改過的程序 229
6.9 小結 229
6.10 練習 229
6.11 本章主要內容 230
第7章 自定義數據類型 233
7.1 C++中的結構 233
7.1.1 結構的概念 234
7.1.2 定義結構 234
7.1.3 初始化結構 234
7.1.4 訪問結構的成員 235
7.1.5 伴隨結構的智能感知幫助 238
7.1.6 RECT結構 239
7.1.7 使用指針處理結構 240
7.2 數據類型、對象、類和實例 241
7.2.1 類的起源 243
7.2.2 類的操作 243
7.2.3 術語 244
7.3 理解類 244
7.3.1 定義類 244
7.3.2 聲明類的對象 245
7.3.3 訪問類的數據成員 245
7.3.4 對象成員的初始化 247
7.3.5 初始化類成員 248
7.3.6 類的成員函數 248
7.3.7 在類的外部定義成員函數 250
7.3.8 內聯函數 251
7.4 類構造函數 252
7.4.1 構造函數的概念 252
7.4.2 默認的構造函數 254
7.4.3 默認的形參值 256
7.4.4 在構造函數中使用初始化列錶 258
7.4.5 聲明顯式的構造函數 259
7.4.6 委托構造函數 260
7.5 類的私有成員 260
7.5.1 訪問私有類成員 263
7.5.2 類的友元函數 263
7.5.3 默認復製構造函數 266
7.6 this指針 267
7.7 類的const對象 269
7.7.1 類的const成員函數 270
7.7.2 類外部的成員函數定義 271
7.8 類對象的數組 271
7.9 類的靜態成員 273
7.9.1 類的靜態數據成員 273
7.9.2 類的靜態函數成員 276
7.10 類對象的指針和引用 277
7.10.1 類對象的指針 277
7.10.2 類對象的引用 279
7.11 小結 280
7.12 練習 280
7.13 本章主要內容 281
第8章 深入理解類 283
8.1 類析構函數 283
8.1.1 析構函數的概念 284
8.1.2 默認的析構函數 284
8.1.3 析構函數與動態內存分配 286
8.2 實現復製構造函數 289
8.3 運算符重載 291
8.3.1 實現重載的運算符 291
精彩書摘
2. #include指令—— 頭文件
在注釋之後有一個#include指令:
#include
之所以稱其為指令,是因為它命令編譯器完成某項任務—— 此處是在編譯之前,在此程序的源文件中插入文件iostream的內容,該文件名位於尖括號之間。iostream文件稱為頭文件,因為它總是插入到另一個源文件中。iostream頭文件是標準C++庫的一部分,它包含一些使用輸入和輸齣語句所需的定義。如果沒有在此程序中包括iostream的內容,那麼不能編譯這個程序,因為在這個程序中使用的輸齣語句依賴該文件中的一些定義。Visual C++提供瞭許多不同的標準頭文件,它們具有各種各樣的功能。在進一步學習語言工具時,將看到更多的頭文件。
由#include指令插入的文件的名稱不一定寫在尖括號之間。頭文件名也可以寫在雙引號中。因此上麵的代碼也可以寫成:
#include "iostream"
兩者之間的唯一區彆是編譯器將在什麼地方查找此文件。如果頭文件名是用雙引號引起來的,則編譯器先在包含此指令的源文件所在的目錄中搜索頭文件。如果頭文件未找到,編譯器再搜索存儲標準頭文件的目錄。
如果文件名是用尖括號括起來的,則編譯器隻搜索包含標準頭文件的目錄。因此,想在源文件中包含標準頭文件時,應該將文件名用尖括號括起來,因為這樣的搜索速度更快。而要包含其他頭文件,一般是自己創建的頭文件,則應該將文件名用雙引號引起來;否則,根本找不到。
#include語句是幾個預處理器指令中的一個,本書後麵將介紹其他預處理指令。編輯器會在編輯窗口中用藍色突齣顯示它們。預處理器指令是由編譯的預處理階段執行的命令,這個階段在代碼編譯成目標代碼之前執行,在編譯源代碼之前,預處理器指令通常以某種方式作用於它們。預處理器指令都以#字符開頭。
3. 名稱空間和using聲明
如第1章所述,標準庫是一個大型的例程集閤,用於執行許多常見的任務,如處理輸入和輸齣,以及執行基本的數學計算。由於標準庫中的這些例程以及其他具有名稱的事物數量巨大,因此用戶使用的名稱可能無意中與標準庫中的名稱雷同。名稱空間是一種機製,它可以將無意中使用重名的風險降至最低,其方法是將一組給定的名稱(如標準庫中的名稱)與一種姓(family name)關聯起來,這種姓就是名稱空間名稱。
在名稱空間的代碼中定義的每個名稱都有一個關聯的名稱空間名稱。標準庫工具定義在std名稱空間內,所以標準庫中的每一項都有自己的名稱,以及作為限定符的名稱空間名稱std。標準庫中cout和endl的全名是std::cout和std::endl,第1章介紹過這些名稱。將名稱空間名稱和實體名分隔開的兩個冒號構成瞭稱為“作用域解析運算符”的運算符,本書後麵將介紹這種運算符的其他用途。在程序中使用全名會使代碼看起來有點混亂,所以最好使用不由名稱空間名稱std限定的簡化名。在前麵的程序中,iostream的#include指令後麵的兩行代碼使之得以實現:
using std::cout;
using std::endl;
這些是using聲明,它們告訴編譯器,要在不指定名稱空間名稱的情況下使用名稱空間std中的名稱cout和endl。編譯器假定,在第一個using聲明之後,隻要使用名稱cout,就錶示std::cout。名稱cout錶示對應於命令行的標準輸齣流,名稱endl錶示換行符,並刷新輸齣緩存。本章後麵會詳細介紹名稱空間,包括如何自定義名稱空間。
2.1.1 main()函數
上述示例中的函數main()包括將它定義為main()的函數頭,以及從第一個左大括號({)到對應的右大括號(})之間的所有語句。這對括號將這個函數中的可執行語句包圍起來,它們總稱為函數體。
所有函數都包括一個定義函數名稱的頭,然後是函數體,它由包括在大括號之間的一些程序語句組成。函數體也可以不包含任何語句,這時它不做任何事情。
不做任何事情的函數似乎有些多餘,但是在編寫大程序時,一開始可以先勾畫齣函數中的完整程序結構,而忽略許多函數的代碼,使它們有一個空的或者最小的函數體。這意味著,可以隨時編譯和執行包含所有函數的整個程序,並逐步給函數添加詳細的代碼。
2.1.2 程序語句
main()函數體的每個程序語句都以一個分號結束。分號錶示語句的結束,而不是這一行的結束。因此,為瞭使代碼更易於理解,可以把一個語句擴展成幾行,也可以把幾個語句放在同一行中。程序語句是定義程序功能的基本單元。這有點像文章中一個段落的句子,每個句子都獨立地錶達一個行為或想法,和這個段落中的其他句子聯係和組閤起來,就錶達齣比較全麵的想法。一個語句就是計算機將要執行的一個行為的自包含定義,和其他語句組閤起來, 就可以定義比較復雜的行為或計算。
函數的行為始終由一些語句來錶達,每個語句都以分號
Visual C++ 2013入門經典(第7版) [Ivor Horton’s Beginning Visual C++ 2013] 下載 mobi epub pdf txt 電子書 格式
Visual C++ 2013入門經典(第7版) [Ivor Horton’s Beginning Visual C++ 2013] 下載 mobi pdf epub txt 電子書 格式 2024
Visual C++ 2013入門經典(第7版) [Ivor Horton’s Beginning Visual C++ 2013] mobi epub pdf txt 電子書 格式下載 2024