Chapter 1 內容梳理
阿新 • • 發佈:2022-01-08
目錄
如何輸入
程式的編譯與執行
編譯環境
- IDE
- 命令列
程式的編譯
g++ filename
: 不指定生成的執行檔名,預設命名為 “a.out”g++ -o exename filename
: 指定生成的執行檔名
程式的執行
filename
./exename
: use relative path [相對路徑].../exename
: use absolute path [絕對路徑]- 注:必須加路徑,直接執行是無效的【這與Shell指令碼不同】
標準輸入與標準輸出
例程匯入
//從標準輸入讀取 v1,v1 ,從標準輸出列印求和結果 #include<stdio.h> #include<iostream> int main(){ std::cout<<"Enter two operands"<<std::endl; int v1=0,v2=0; std::cin>>v1>>v2; std::cout<<"the sum of "<<v1<<" and "<<v2<<" is "<<v1+v2<<std::endl; return 0; }
標準輸入與輸出物件
- 輸入
cin
:標準輸入物件【內容進入快取區】
- 輸出
cout
:標準輸出物件【內容進入快取區】cerr
:一般用以輸出程式錯誤與警告【內容不進入緩衝區】clog
:一般用以輸出執行時的相關資訊【內容進入快取區】
- 標準輸入與輸出物件都與控制檯相關聯
輸入與輸出符號詳解
<<和>>本來表示左移和右移,但在iostream標頭檔案中,被過載為函式
cout << "hello world"
cin >> v1
函式角度理解【用函式的副作用】
- 引數
- cout : ostream 物件
- “hello world” : 一個定值
- 輸出
- ostream物件的引用, 等價於 ostream物件
- 這是
cout
可以鏈式使用的原因
- 副作用 : 把定製賦給ostream物件,並輸出到控制檯【標準io】
運算子角度理解
- 左值 : ostream物件
- 右值 :一個定值
- 效果 :把定值賦給osteam物件,並把值輸出到控制檯
- 注:可以鏈式使用
定位符號(scope operator)
- 作用:解決同名衝突
std::cout
表示cout是在std名稱空間(namespace)裡的函式- 名稱空間可以在標頭檔案之後指定
using namespace std;
,這樣在寫cout時就不用加上std::
換行符號(endl)
- 表示換行
- 清空緩衝區【全部輸入到ostream物件中】
如何輸入EOF
- window : 換行——輸入ctrl+z——換行
- unix:換行——輸入ctrl+d——換行
類,型別,成員,物件,變數等概念間的關係
型別(type)與類(class)
- 型別(type):聲明瞭一種資料結構,包括資料以及對資料的操作
- 固有型別(build-in type):語言本身支援的型別,如int,char
- 自定義型別:程式設計者自己定義的型別(OOP特有)
- 類(class):
- 在C++中,使用者實現自定義型別的機制。支援使用者自己指定資料成員以及操作,來實現自定義型別。
- 用類機制實現的自定義型別稱為類型別(class type)
- 關係
成員
- 在固有型別中,定義了資料與對資料的操作
- 成員是類型別中,對資料和對資料的操作這兩個概念的對映
- 資料——>成員
- 對資料的操作——>成員函式
物件與變數
同上,二者是同級概念,為對映關係
- 型別(type)的例項化稱為變數【
int i
表示 i 是 int 型別的變數】 - 類型別(class type)的例項化為物件【
Sale_Item it
表示 it 是一個 Sale_Item物件】