开始---《C++ primer》随笔
第一章
1.1 編寫一個簡單的C++程序
int main(){return 0; }編寫完上面的代碼后,通過編譯就可以運行程序了。
1.2 初始輸入輸出
#include<iostream> //標(biāo)準(zhǔn)輸入輸出庫 using namespace std; //標(biāo)準(zhǔn)庫定義的所有名字都在命名空間std中 int main(){int n; //定義變量ncin>>n; //cin是標(biāo)準(zhǔn)輸入cout<<n<<endl; //cout是標(biāo)準(zhǔn)輸出return 0; }也可以不用using namespace std,可以用std::cin和std::cout。如下。
#include<iostream> //標(biāo)準(zhǔn)輸入輸出庫 int main(){int n; //定義變量nstd::cin>>n; //cin是標(biāo)準(zhǔn)輸入std::cout<<n<<std::endl; //cout是標(biāo)準(zhǔn)輸出return 0; }其中
- 輸出運算符(<<)
- 輸入運算符(>>)
- 作用域運算符(::)
- endl操作符
這一節(jié)還介紹了一個重要的知識點,endl操作符效果是換行并且將與設(shè)備關(guān)聯(lián)的緩存區(qū)中的內(nèi)容刷到設(shè)備中。
1.3 注釋簡介
//這是單行注釋 /*這是多行注釋 */注釋在計算機里面起到重要作用,提高的程序的可讀性
1.4 控制流
while語句 ,代碼如下:
#include<iostream> using namespace std; /*輸入一個整數(shù)試試。 */ int main(){int n;cout<<"輸入一個整數(shù):"<<endl;cin>>n;while(n--){cout<<n<<" ";}cout<<endl; }for語句,代碼如下:
#include<iostream> using namespace std; /*輸入一個整數(shù)試試。 */ int main(){int n;cout<<"輸入一個整數(shù):"<<endl;cin>>n;for(int i=0;i<n;i++){cout<<i<<" ";}cout<<endl; }if語句,代碼如下:
#include<iostream> using namespace std; /*判斷一個整數(shù)是否為偶數(shù)。 */ int main(){int n;cout<<"輸入一個整數(shù):"<<endl;cin>>n;if(n%2==0){cout<<n<<"是偶數(shù)";}else{cout<<n<<"是偶數(shù)";}cout<<endl; }1.5 類簡介
C++中,我們通過定義一個類(class)來定義自己的數(shù)據(jù)類型。
這里,我們討論三個下列問題:
- 類名是什么?
- 它是在哪里定義的?
- 它支持什么操作?
下列代碼與書中代碼略有偏差,不過大體一致。讀者可以復(fù)制嘗試。
在編輯器(如vc++ 6.0)下面創(chuàng)建一個控制臺(Console)項目。
首先,我們在頭文件文件夾下創(chuàng)建一個 Sales_item.h 文件(本人推測這個類的內(nèi)部結(jié)構(gòu))。
下列是對應(yīng)的三個問題的答案
- 從上面的模板可以看出Sales_item是類名。
- 里面定義了它的成員函數(shù)和數(shù)據(jù)成員。
- 成員函數(shù)提供對Sales_item的操作。
接下來,我們在源文件里面創(chuàng)建一個 Sales_item.cpp 來實現(xiàn)Sales_item的細節(jié):
#include "Sales_item.h" #include<iostream> #include<string> using namespace std;//無參構(gòu)造函數(shù),初始化成員數(shù)據(jù) Sales_item::Sales_item():isbn_no(" "), book_number(0), price(0){cout << "create Sales_item" << endl; }//拷貝構(gòu)造函數(shù) Sales_item::Sales_item(const Sales_item & item) {this->isbn_no = item.isbn_no; //string類重載了賦值運算符(=)this->book_number = item.book_number;this->price = item.price; }//析構(gòu)函數(shù) Sales_item::~Sales_item(){cout << "free isbn no : " << this->isbn_no << endl; }//賦值運算符重載 Sales_item & Sales_item::operator=(const Sales_item & item) {this->isbn_no = item.isbn_no;this->book_number = item.book_number;this->price = item.price;return *this; }//加法運算符重載 Sales_item & Sales_item::operator+(const Sales_item & item) const {Sales_item *i = new Sales_item(); //系統(tǒng)調(diào)用析構(gòu)函數(shù)會銷毀new出來的這個對象if (item.isbn_no == this->isbn_no) { //string類重載了(==)運算符i->isbn_no = item.isbn_no;i->book_number = item.book_number + this->book_number;i->price= (item.price*item.book_number+this->price*this->book_number)/(i->book_number);}else {cout << "different isbn no" << endl; //isbn號不相同}return *i; }//復(fù)合運算符 Sales_item & Sales_item::operator+=(const Sales_item & item) {if (this->isbn_no == item.isbn_no) {this->price= (item.price*item.book_number + this->price*this->book_number)/ (item.book_number + this->book_number);this->book_number += item.book_number; }else {cout << "different isbn no" << endl;}return *this; }//Sales_item的行為,它只返回isbn號 //加上后者的const是為了不讓isbn_no被修改 //加上前者的const是為了不讓返回的isbn_no修改 const string & Sales_item::isbn() const {return this->isbn_no; }//輸入運算符重載 istream & operator>>(istream & is, Sales_item & item) {is >> item.isbn_no >> item.book_number >> item.price;return is; }//輸出運算符重載 ostream & operator<<(ostream & os, Sales_item & item) {os << item.isbn_no<< " " << item.book_number<< " " << item.price*item.book_number<< " " << item.price;return os; }下面將進行讀寫Sales_item操作:
#include "Sales_item.h" #include<iostream> using namespace std; int main() {Sales_item book;cin >> book;cout << book << endl;getchar();getchar();return 0; }Sales_item對象加法操作:
#include "Sales_item.h" #include<iostream> using namespace std; int main() {Sales_item item1, item2;cin >> item1 >> item2;cout << item1 + item2 << endl;getchar();getchar();return 0; }到此,我們已經(jīng)大致了解了什么是類。
接下來,我們討論什么是成員函數(shù)?
如下代碼:
從中,我們知道isbn()就是Sales_item的成員函數(shù),它通過(類名.函數(shù)名)的形式而被調(diào)用,我們注意有一個”.”。(PS:成員函數(shù)一般也稱為方法或者行為,它們?nèi)齻€是等價的。)
1.6 書店程序
書中程序的功能:總銷售為total,當(dāng)前交易為trans。通過程序可以算出,這一個進程結(jié)束之前的銷售量(total)。
可以自行代碼嘗試一下,挺好玩的一個程序。
小結(jié)
本節(jié),對于本萌新來說收獲頗大。主要講解C++的一些基礎(chǔ)語法。
總結(jié)
以上是生活随笔為你收集整理的开始---《C++ primer》随笔的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人类心理学中几乎没有人知道的东西是什么?
- 下一篇: 互联网日报 | 2021年春运火车票今起