日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

开始---《C++ primer》随笔

發布時間:2025/3/15 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开始---《C++ primer》随笔 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一章


1.1 編寫一個簡單的C++程序

int main(){return 0; }

編寫完上面的代碼后,通過編譯就可以運行程序了。


1.2 初始輸入輸出

#include<iostream> //標準輸入輸出庫 using namespace std; //標準庫定義的所有名字都在命名空間std中 int main(){int n; //定義變量ncin>>n; //cin是標準輸入cout<<n<<endl; //cout是標準輸出return 0; }

也可以不用using namespace std,可以用std::cin和std::cout。如下。

#include<iostream> //標準輸入輸出庫 int main(){int n; //定義變量nstd::cin>>n; //cin是標準輸入std::cout<<n<<std::endl; //cout是標準輸出return 0; }

其中

  • 輸出運算符(<<)
  • 輸入運算符(>>)
  • 作用域運算符(::)
  • endl操作符

這一節還介紹了一個重要的知識點endl操作符效果是換行并且將與設備關聯的緩存區中的內容刷到設備中


1.3 注釋簡介

//這是單行注釋 /*這是多行注釋 */

注釋在計算機里面起到重要作用,提高的程序的可讀性


1.4 控制流

while語句 ,代碼如下:

#include<iostream> using namespace std; /*輸入一個整數試試。 */ int main(){int n;cout<<"輸入一個整數:"<<endl;cin>>n;while(n--){cout<<n<<" ";}cout<<endl; }

for語句,代碼如下:

#include<iostream> using namespace std; /*輸入一個整數試試。 */ int main(){int n;cout<<"輸入一個整數:"<<endl;cin>>n;for(int i=0;i<n;i++){cout<<i<<" ";}cout<<endl; }

if語句,代碼如下:

#include<iostream> using namespace std; /*判斷一個整數是否為偶數。 */ int main(){int n;cout<<"輸入一個整數:"<<endl;cin>>n;if(n%2==0){cout<<n<<"是偶數";}else{cout<<n<<"是偶數";}cout<<endl; }

1.5 類簡介

C++中,我們通過定義一個類(class)來定義自己的數據類型。
這里,我們討論三個下列問題:

  • 類名是什么?
  • 它是在哪里定義的?
  • 它支持什么操作?

下列代碼與書中代碼略有偏差,不過大體一致。讀者可以復制嘗試。
在編輯器(如vc++ 6.0)下面創建一個控制臺(Console)項目
首先,我們在頭文件文件夾下創建一個 Sales_item.h 文件(本人推測這個類的內部結構)。

#include<iostream> #include<string> using namespace std; class Sales_item {public:Sales_item(); //無參構造函數Sales_item(const Sales_item &item); //拷貝構造函數~Sales_item(); //析構函數friend istream & operator>>(istream &is,Sales_item &item); //重載輸入運算符friend ostream & operator<<(ostream &os, Sales_item &item); //重載輸出運算符Sales_item & operator=(const Sales_item &item); //重載賦值運算符Sales_item & operator+(const Sales_item &item) const; //重載加法運算符Sales_item & operator+=(const Sales_item &item); //重載復合賦值運算符const string & isbn() const; //Sales_item的行為private:string isbn_no; //isbn編號int book_number; //圖書數量float price; //圖書價格 };

下列是對應的三個問題的答案

  • 從上面的模板可以看出Sales_item類名
  • 里面定義了它的成員函數數據成員
  • 成員函數提供對Sales_item的操作

接下來,我們在源文件里面創建一個 Sales_item.cpp 來實現Sales_item的細節

#include "Sales_item.h" #include<iostream> #include<string> using namespace std;//無參構造函數,初始化成員數據 Sales_item::Sales_item():isbn_no(" "), book_number(0), price(0){cout << "create Sales_item" << endl; }//拷貝構造函數 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; }//析構函數 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(); //系統調用析構函數會銷毀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; }//復合運算符 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; }

到此,我們已經大致了解了什么是類。
接下來,我們討論什么是成員函數?
如下代碼:

#include "Sales_item.h" #include<iostream> using namespace std; int main() {Sales_item item1, item2;cin >> item1 >> item2;//檢查item1和item2是否表示相同的書if (item1.isbn() == item2.isbn()) { //isbn()就是Sales_item的成員函數cout << item1 + item2 << endl;getchar();getchar();return 0; //表示成功}else {cerr << "Data must refer to same ISBN" << endl;getchar();getchar();return -1; //表示失敗} }

從中,我們知道isbn()就是Sales_item的成員函數,它通過(類名.函數名)的形式而被調用,我們注意有一個”.”。(PS:成員函數一般也方法或者行為,它們三個是等價的。)


1.6 書店程序

書中程序的功能:總銷售為total,當前交易為trans。通過程序可以算出,這一個進程結束之前的銷售量(total)
可以自行代碼嘗試一下,挺好玩的一個程序。


小結

本節,對于本萌新來說收獲頗大。主要講解C++的一些基礎語法

總結

以上是生活随笔為你收集整理的开始---《C++ primer》随笔的全部內容,希望文章能夠幫你解決所遇到的問題。

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