C++ Primer 第一章 快速入門
看到很多人學習這本書都會寫下學習過程筆記!因為覺得這是不錯的做法,也可以鞏固自己學習的知識,還能在以後的學習這本時發現問題,到時也可以到回來修改和補充。
自己在圖書館看完了第一章,小錢問我感覺會不會悶,我說我覺得很爽!我不打算很快地把它看完,我要把每個知識點都掌握,所以剛開始會看得很慢,我也不急,就像小錢說的穩扎穩打,一步一個腳印一樣。因為有C++基礎,所以看這本書並不困難,看過之後,發現這本書確實不適合新手去讀,最好要有點基礎才行,好了廢話不多說,開始寫這一章的筆記了。
本章呢,介紹C++大部分基本要素:內置類型、庫類型、類類型、變量、表達式、語句和函數。這一章主要是做一個緩沖,後面的章節才慢慢闡明本章的主題。
1.1節-編寫簡單的C++程序
一個C++程序都包含一個或多個函數,其中必須有一個命名為main。
函數由執行函數功能的語句序列組成。
main函數的返回值必須是int型,該類型表示整數。int類型是內置類型,即該類型是由C++語言定義的。
C++中多數語句以分號作為結束標記。(容易被忽略)
return語句帶上一個值時,這個值就是函數的返回值。
返回值類型必須和函數的返回類型相同。
——編譯與執行程序
這本書程序好像是調用GUN編譯器,我一直用的是Visual C++ 6.0,算是一個比較老的編譯器,最近開始用Visual Studio系列的編譯器,還不怎麼會用,有點悲催!
——程序源文件命名規范
源文件的名字由文件名和文件後綴兩部分組成。
visual Studio 編譯器後綴形式是(.cpp)
1.2節——初窺輸入/輸出
這種功能是由標准庫提供的(iostream庫)
istream和ostream,分別表示輸入流和輸出流
標准輸入與輸出對象分別是cin和cout,標准庫還定義了另外兩個ostream對象分別命名為cerr和clog;
課本代碼如下:
#include<iostream>
int main()
{
std::cout<<"Enter two number:"<<std::endl;
int v1,v2;
std::cin>>v1>>v2;
std::cout<<"The sum of"<<v1<<"and"<<v2<<"is"<<v1+v2<<std::endl;
return 0;
}
程序的第一行是一個預處理指示,尖括號裡的名字是一個頭文件
1.寫入到流
形式:(std::cout);<<是輸出操作符
endl是一個特殊值,稱為操作符,具有換行的效果,並刷新與設備相關聯的緩沖區。
2.使用標准庫中的名字
命名空間(namespace)std,這本書的輸出形式跟譚伯伯那本《C++程序設計》輸出有點區別,譚伯伯那本在程序開頭是寫
(using namespace std;),然後輸出就直接有cout,而這本書是把命名空間std作為前綴,寫法使用了作用域操作符::.
3.讀入流
形式:(std::cin);>>是輸入操作符
4.完成程序
就是輸出結果;
注解:在寫C++程序時,大部分出現空格的地方可用換行符代替。但是有兩個例外:
1.字符串面值中的空格不能用換行符代替(" ")。
2.預處理指示中不允許出現空格符(#include" ")。
1.3——關於注釋
單行注釋以雙斜線(//)開頭,另一種定界符,注釋對(/**/),這種注釋以"/*"開頭,以"*/"結尾。
注釋對一般用於多行解釋,而雙斜線注釋則常用於半行或單行的標記。(注釋對不可嵌套)
1.4——控制結構
while語句
代碼:
//當val>10時跳出循環
while(val<=10){
sum+=val;
++val;
}
由以上代碼可知while通過測試條件(condition)和執行相關的表達式語句(while_body_statement)來重復執行,直到條件為假。
條件是一個可求值的表達式,可以測試其結果,如果結果值為非0,那麼條件為真,值為0,那麼條件為假。
for語句
代碼:
for(int val=1;val<=10;++val)
sum+=val;
上述代碼包含for語句頭和for語句體兩部分
for語句頭由三部分組成:一個初始化語句,一個條件,一個表達式。for(循環變量賦初值;循環條件;循環變量增值)語句
執行順序:
1.初始化語句
2.循環條件
3.語句
4.循環變量增值
If語句
一般形式:
if(表達式)語句1
else 語句2
1.5類的簡介
使用類時需要清楚三個問題
1.類的名字是什麼?
2.它在哪裡定義?
3.它支持什麼操作?
Sales_item類
1.Sales_item對象上的操作
每個類定義一種類型,類型名與類名相同。
定義類類型的變量,當寫下Sales_item item;
就表示item是類型Sales_itemd的一個對象。
Sales_item是一種自定義類型。當使用自定義頭文件,我們采用雙引號,(" ")把頭文件名括起來。
初窺成員函數
什麼是成員函數?它屬於一個類的成員,出現在類體中,這是區別一般函數的,成員函數可以訪問本類任何成員,可以引用在本作用域中的有效數據。當調用成員函數,要指定函數要操作的對象,語法是使用點操作符(.): item1.same_isbn;
1.6——C++程序
之前所介紹的知識只是在做一些知識儲備,學完這章已經可以解決最初的書店問題了
<span style="font-family:KaiTi_GB2312;"></span><pre class="cpp" name="code">//C++程序
#include<iostream>
#include “Sales_item.h”
int main()
{
Sales_item total,trans;//定義兩個Sale_item類對象
//讀入交易
if(std::cin>>total){
while(std::cin>>trans)
//ISBN相同
if(total.same_isbn(trans))
//更新total
total=total+trans;
//ISBN不同
else{
std::cout<<total<<std::endl;
//使用剛讀入的交易重置total
total=trans;
}
std::cout<<total<<std::endl;
}else{
std::cout<< “No data?!”<<std::endl;
return -1;
}
return 0;
}
本章介紹了足夠多的知識點,我也很清楚地把這些知識點簡要的羅列了一遍,雖然寫這篇筆記花了我不是太多時間,但我還是覺得很浪費時間,進度很慢,基本計劃就是看完一章後馬上寫筆記,以後盡量只把重點難點給記錄下來,還有一些易錯知識點,還有一些經常犯的錯誤。第一篇筆記,有了一個很好的開頭,接下來的會更加努力去寫
摘自 wwj的夢想之路