C++學習筆記
序章
C++內容:
- 基本元素
- Objects(對象) & Class(類)
- Inheritance(繼承) & Polymorphism(多態)
- Exceptions(異常) & Templates(模板)
- C++ Standard Library
C++閱讀推薦
- Thinking in C++, 2nd Edition, Bruce Eckel
- C++ primer, 5th Edition, Stanley Lippman(語法不清楚時可以看)
- The C++ Programmer Language, 4rd Edition, Bjarne Stroustrup (接觸C++一段時間後可以看)
- Essential C++, Stanley Lippman (一般般,可以快速過一遍)
- (more) Effective C++, 3rd 2005, (如何高效使用C++)
- Effective Modern C++, 2014
- Inside The C++ Object Model, Stanley Lippman(底層與細節)
- Information: Download books and code(vol.1)
http://www.mindview.net/Books/DownloadSites/
Preparation
one C++ Compiler(gcc/g++, visual c++, clang)
準備好一個c++的編譯器即可,不管什麼地方都可以寫代碼,不過應該會更多的使用IDE吧…
那麼開始寫第一個C++程序吧
程序員的hello world!//hello.cpp
#include <iostream>
int main()
{
std::cout << "hello world!\n";
}
其中 “
C++源文件處理過程
- C++源文件(.cpp / .h)
- 預處理(宏展開,加入頭文件)
- 編譯(處理語法問題)
- 各個編譯單元獨立處理
- 任何標識符使用前必須聲明
- 聲明不會分配空間
- 定義會分配空間,而且可以充當聲明
- 鏈接(*.obj)
- 可執行文件(*.exe)
以上文的“hello.cpp”爲例
具體的處理過程如下:
1. 編譯 hello.cpp 生成 hello.obj (目標文件)
2. 鏈接 hello.cpp 生成 hello.exe (可執行文件)
3. 運行hello.exe(或hello)
ODR原則
One Definition Rale
任何標識符必須有定義並且只能定義一次
一條建議:聲明放在頭文件中,定義放在cpp文件中
IDE
Visual Studio介紹
1. *.sln 解決方案文件 (包含···工程,顯示版本)
2. *.vcxproj 工程文件 (包含源文件)
3. *.obj 在 Debug 文件夾下 (product的Debug下)
4. *.exe 在 Solution的Debug下
其他IDE還有很多,找自己喜歡用的就好
那麼用IDE寫個程序吧
第二個程序
加強版hello
//hello.cpp
#include <iostream>
#include <string.h>
//using namespace std; //表示std的名稱空間都開放了,之後就不用寫“std::”了
//using std::cout; //表示開放了cout,以後的cout都不用在前面“std::”了
int main()
{
std::string name;
std::cin >> name;
std::string greating = "hello " + name + "~";
std::cout << greating << std::endl;
}
運行一下試試會發生什麼吧~