1. 程式人生 > >《C++ Primer》讀書筆記第一章

《C++ Primer》讀書筆記第一章

筆記會持續更新,有錯誤的地方歡迎指正,謝謝!

第一章:開始

語言常識

一、C++進一步補充其基本特徵的兩種方法:
1.允許程式設計師自定義資料型別;
2.將有用的功能封裝成庫函式。
二、有兩類語言:
1.動態資料型別語言:在程式執行時檢查資料型別,比如:python;
2.靜態資料型別語言:在編譯時檢查資料型別,比如:C++。

一個簡單的C++程式

int main()
{
return 0;
}
結構為:返回型別,函式名,形參列表,函式體。
返回值0表示成功,非0為系統定義的錯誤型別。比如:返回值-1表示失敗。

IO

1.C++語言未定義任何IO語句,卻包含了一個標準庫來提供IO機制。
2.iostream庫包括輸入流(標準輸入:cin)和輸出流(標準輸出:cout,輸出警告和錯誤訊息、不緩衝:cerr,輸出程式執行時的一般性的資訊、要緩衝:clog)。
補充內容:
-所謂不帶緩衝的I/O,並不是指核心不提供緩衝,而是隻單純的系統呼叫,不是函式庫的呼叫。系統呼叫將資料寫入到核心提供的塊緩衝

進行排隊,當塊緩衝達到一定的量時,才會把資料寫入磁碟。(單緩衝)
-而帶緩衝的I/O,程序提供了一個流緩衝,先把資料寫入流緩衝區中,當流緩衝區滿了,或重新整理流緩衝,這時候才會把資料一次送往核心提供的塊緩衝,再經塊緩衝寫入磁碟。(雙重緩衝)
-總結:因此所謂的不帶緩衝的I/O(未打包就傳了)是指程序不提供緩衝功能,但核心還是提供緩衝的。並且,帶緩衝的I/O(已提前打好包再傳)在往磁碟寫入相同的資料量時,會比不帶緩衝的I/O呼叫系統呼叫的次數要少。
3.流:隨著時間的推移,字元是順序生成或消耗的。
4.endl的作用是結束當前行,並將與裝置關聯的緩衝區中的內容刷到裝置中。除錯時的列印應保證一直重新整理流。

控制流

1.while語句
2.for語句
3.if語句
4.讀取數量不定的輸入資料
應用問題:如何求未知個數的數的和?

#include <iostream>
int main()
{
    int sum = 0, value = 0;
    while(std::cin >> value)
    {
        sum += value;
    }
    std::cout << "輸入數的和為:" << sum << std::endl;
    return 0;
}

while的判斷條件:流狀態有效則cin為真,遇文字流結尾(EOF)或無效輸入為假。

類簡介

類型別(class type):自定義的(在使用上像內建型別的)資料型別,為了和內建型別區別開才這樣命名。
點(.)運算子只能用於類型別的物件;
::運算子為作用域運算子;
()運算子跟隨在函式名之後,作用是呼叫函式。

相關推薦

高質量程式設計指南C++/c語言讀書筆記 第一

第一章 高質量軟體開發之道 1.1質量的定義 詞典:(1)典型或本質的特徵;(2)事物固有的或區別於其他物質的特徵或本質;(3)優秀或出色的程度。 CMM定義:(1)一個系統、元件或過程符合特定需求的

C++ Primer讀書筆記-第一 Hello World

好吧,不管怎麼說,總算可以開講了,那些什麼授人以漁無量功德的話就不說了,因為不知道我所說的能否真的能夠幫助大家,然而該感謝的人一個人都不能少,首先感謝牛客網ID為我知道啥,我是讀了他的文章後收受到了啟發,萌發了也要寫一篇讀書筆記的念頭,感謝CSDN,上面有很多人總結不少C++的讀書筆記。要感謝的

C++ Primer讀書筆記第一

筆記會持續更新,有錯誤的地方歡迎指正,謝謝! 第一章:開始 語言常識 一、C++進一步補充其基本特徵的兩種方法: 1.允許程式設計師自定義資料型別; 2.將有用的功能封裝成庫函式。 二、有兩類語言: 1.動態資料型別語言:在程式執行時檢查資

C++ Primer 第五版 讀書筆記 第一 開始

下面是C++ Primer第一章的讀書筆記 ———————————————————————— 0001.作業系統如何執行C++程式 作業系統通過呼叫main來執行C++程式 0002.main 作業系統執行一個C++程式時所呼叫的函式 每個程式必須有且只有一個命名為mai

C++ primer 讀書筆記 第七 02 訪問控制和封裝

在c++中,我們使用訪問說明符加強類的封裝性: 定義在public說明符之後的成員在整個程式內可被訪問,public成員是暴露在外的,決定了類的介面 定義在private說明符之後的成員可以被類的成員函式訪問,但不能被使用該類的程式碼訪問,private封裝了類的實現細節 一

C++ primer 讀書筆記 第七 01 定義抽象資料型別

定義成員函式 成員函式的宣告必須在類的內部,它的定義既可以在類的內部也可以在類的外部。 struct Sales_data { std::string isbn() const { return bookNo; } double arv_price() co

C++ primer 讀書筆記 第七 06 類的靜態成員

在成員的宣告之前加上static關鍵字即可宣告靜態成員 靜態成員的訪問 使用作用域運算子直接訪問 通過類的物件訪問 Account::rate(); Account ac1; Account *ac2 = &ac1; r = a

《深度探索C++物件模型》讀書筆記第一:關於物件

有點尷尬,這個筆記已經記過一遍了。重新來過的原因是我讀到第五章左右覺得自己對這本書認識不夠深刻,暫時就沒有記筆記。今天正式把書通讀了一遍了,然後現在讀第二遍,這一遍我每章都會寫一篇部落格總結,只總結重點,精要,所以會簡短一些。我會以條款的形式來總結。 從C到C++,使

《神經網絡設計》讀書筆記第一

tails 人工 讀書筆記 進一步 結構 network 設計 消失 第一章 包括記憶在內的所有生物神經功能,都存儲在神經元及其之間的連接上。 神經網絡中關於學習的過程是 神經元之間建立新的連接或對已有連接進行修改的過程。 神經網絡的起源:M-P模型 是按照生物神經元的

《MySQL技術內幕InnoDB存儲引擎》讀書筆記 第一

內存 ndb存儲 mvcc select mysql5.0 事務 myisam 包括 插入 Mysql體系結構和存儲引擎 1.1 定義數據庫和實例   數據庫:物理操作系統文件或其他形式文件類型的集合。 數據庫文件可以使frm,MYD,MYI,ibd結尾的文件。   

隨機過程(方兆本,繆伯其)讀書筆記-第一-引論

重要 聯合 時間差 給定 函數 完全 tro markdown 狀態 第一章 引論 1.1 引言 1.1.1 基本概念和例子 定義1.1: 隨機過程就是一族隨機變量${X(t), t \in T}$, 其中$t$ 是參數, 屬於某個指標集$T$, $T$ 稱為參數集. $t

ansible for devops讀書筆記第一

class 讀書筆記 nbsp yum div username -a free gpo yum -y install ansible ansible --version mkdir /etc/ansible touch /etc/ansible/host

《數據庫設計入門經典》讀書筆記——第一:數據庫建模的過去與現在

port 混合 如果 執行 很好 創建表 規則 什麽 增長 《數據庫設計入門經典》,現在學習的是這本書,雖然以前就看過類似的書,可能由於之前經驗不足,書中說的某些東西只消化了一部分,現在重溫一邊好懂多了。所以說讀第一遍讀不懂不要緊,過個一年半載的再來讀,還是會讀不懂的,哈哈

C++ Primer Plus 筆記第二

返回值 源碼 primer cout include 分配 字符 參數 get 保持輸出窗口打開:   添加一行代碼cin.get(); 函數頭:   函數頭描述了函數與調用它的函數的接口。   eg:int main()       函數名前面的部分---函數返回類型

[Elasticsearch in Action讀書筆記]第一 Elasticsearch介紹

為什麼需要搜尋引擎 搜尋的目的是快速尋找需要的內容而不用瀏覽整個站點 搜尋結果應該是有順序的,相關度越高的結果越應該排在前面 需要提供篩選,以優化搜尋結果整體的相關性 搜尋的速度不能太慢 由於傳統的關係型資料庫無法很好地解決這類問題,所以需要引入專門的搜尋引擎。

作業系統概述第七版讀書筆記第一

概述 作業系統是作為計算機硬體和計算機使用者之間的中介程式 目的是為使用者提供方便有效的執行程式的環境 是管理計算機硬體的軟體 作業系統做什麼 計算機系統組成部分:計算機硬體、作業系統、系統程式和應用程式、使用者 作業系統:控制使用者的應用程式對硬體的使用 作業系統是一直

企業應用架構模式讀書筆記 第一 分層

分層 在分解複雜的軟體系統時,軟體設計者用得最多的技術之一就是分層。 當用分層的觀點來考慮系統時,可以將各個子系統想象成按照“多層蛋糕”的形式來組織,每一層都依託在其下層之上。在這種組織方式下,上層使用了下層定義的各種服務,而下層對上層一無所知。另外,每一層對自己的上傳隱藏其下層的細節。因此,第4層使用第

《Linux命令列與shell指令碼程式設計大全》讀書筆記————第一 初識Linux shell

本章內容 1、什麼是Linux 2、Linux核心的組成   1、1 什麼是Linux Linux課劃分為以下四部分 a)Linux核心 b)GNU工具 c)圖形化桌面環境 d)應用軟體   1.1.1 深入探究Linux核心

《高效能MySQL》讀書筆記---第一:MySQL架構與歷史

本章描述了MySQL的伺服器架構、各種儲存引擎之間的主要區別,以及這些區別的重要性   1.1 MySQL邏輯架構 MySQL的邏輯架構如下圖所示: 第一層:該層的服務並不是MySQL獨有的,大多數基於網路的客戶端/伺服器的工具或者伺服器都有類似的架構。如連線處理、授權認證、安全等

**C++變數和基本內建型別**(C++ Primer讀書筆記

1.內建型別包括算數型別和空型別(void,適用於沒有任何返回值的函式或者其他的特殊場合)。算數型別包括整形(字元和布林型)和浮點型。 2.除了布林型和擴充套件的字元型之外。,其餘的整形都可以通過在前面新增unsigned來變成無符號型別(帶符號的型別可以表示負數,0,和整數。無符號型別