咱們會講C++那些事,C++與C語言的關係。ios
C++誕生於貝爾實驗室。
C++之父: 本賈尼·斯特勞斯特盧普
C++社區排行榜c++
最新排行,c++排名第三,Python排名第四
C++語言的應用領域:編程
嵌入式(手機,機頂盒),遊戲編程,網絡編程,系統編程
快,省數組
C與C++的關係:網絡
C語言是C++的子集。編輯器
C++在語法上徹底兼容C,C++是從C的基礎上發展而來的。
學習C++,基礎是學習C語言
個人IDE 與 IDE初體驗函數
什麼是IDE環境?工具
IDE: Integrated Development Environment
集成開發環境學習
通常包括代碼編輯器,編譯器,調試器和圖形用戶界面工具。
iso文件,虛擬光驅,找到setup.exe.字體
Visual Studio 2015 + Visual Assist X
連接: https://pan.baidu.com/s/1SgdT... 密碼: 2333
安裝後會提示更新,就更了吧。
由於咱們學習c++,能夠只安裝C++部分。
新建項目 -> 選擇Visual C++ -> win32控制檯應用程序
選擇空文件,理解程序從無到有。
源文件上點擊右鍵添加新建項。
新建時選擇cpp文件。
那麼就讓咱們駛出遠征中的第一步->Hello C++
#include<iostream> using namespace std; //關於這裏,且聽下回分解 int main() { cout<<"Hello C++"; //在此填寫咱們的開篇Hello C++ return 0; }
新的數據類型,新的初始化方法,隨用隨定義的特性
C語言中的數據類型
優:快捷方便,還有視覺上清晰易懂,程序易讀易懂
C語言提供的初始化方法: int x =1024
除了與c語言同樣的複製初始化,還有本身獨有的直接初始化 優勢:很快捷方便
c語言方式下,程序長了還得調到上面定義變量很不方便。
總結: 新的數據類型(布爾類型),新的初始化方法(用括號括起來直接初始化),隨用隨定義的特性。
c語言中的I/O 方式
C++中的I/O 方式
cout << x << endl;
兩個小於號(中間沒有空格),輸入變量x(不須要區分類型,不須要%d等)。endl
和c語言中的\n
是等效的。
cout << "x+y=" << x+y << endl;
錯誤示例以下:
cout << x,y,z << endl;
cin >> x;
將外界的輸入傳遞到x。不須要關注變量x的類型,不須要c語言的格式符。
cin >> x >> y;
cin輸入方式, x y爲變量. 依次爲多個變量賦值。
這樣的輸入輸出方式有哪些便利?
不容易出現問題
boolalpha
;
c++中默認的i/o類型爲十進制;若是不加說明,是沒法辨認0
,0x
開頭的八進制和十六進制的。在cin或cout中指明進制類型後,該進制將一直有效,直到再次改變它的進制。
4-C++-hexConvert/main.cpp
#include<iostream> #include <stdlib.h> using namespace std; int main() { cout << "請輸入一個整數:" << endl; int x = 0; // 隨用隨定義 cin >> x; cout << "八進制:" << oct << x << endl; // 八進制 cout << "十進制:" << dec << x << endl; // 十進制 cout << "十六進制:" << hex << x << endl; // 十六進制 cout << "請輸入一個布爾值(0或1):"<< endl; bool y = false; cin >> y; cout << boolalpha << y << endl; // 布爾類型輸出 system("pause"); return 0; }
f5開始調試
什麼是命名空間
簡言之: 就是爲程序劃片取名字
namespace區別來自不一樣的對象的相同名字的函數,爲程序劃片取名字。
爲何要有命名空間?
A公司和B公司都有小王,那麼不指明是哪一個公司的小王就會產生不知道是哪一個小王。
程序中的命名空間
C公司購買了A和B的程序庫,想要使用A的變量x,B公司函數f1怎麼辦?
A和B就要使用命名空間
命名空間關鍵字:
namespace A
,namespace B
namespace A{ int x = 0; void f1(); void f2(); } namespace B{ int x = 2; void f1(); void f3(); }
要調用命名空間內變量或函數寫法(C公司要使用的話):
// 輸出A中的變量x cout << A::x << endl; // 使用B中的f1 B::f1();
system("pause")
包含於stdlib.h#include <stdlib.h> int main() { system("pause"); return 0; }
#include<iostream>
不然報錯,cin cout 未聲明的標識符
using namespace std;
沒有的話依然報錯, 未聲明的標識符, 由於iostream 中的cin cout在命名空間當中。
#include "stdafx.h" #include <stdlib.h> #include<iostream> // cin cout 步驟1 using namespace std; // 步驟2 int main() { cout << "hello" << endl; system("pause"); return 0; }
主函數爲main函數模擬c公司。
4-C++-CompanyABC/main.cpp
#include <stdlib.h> #include<iostream> namespace A { int x = 1; void fun() { std::cout << "A Company function" << std::endl; } } namespace B { int x = 2; void fun() { std::cout << "B Company function" << std::endl; } void fun2() { std::cout << "Only B Have" << std::endl; } } using namespace B; int main() { std::cout << A::x << std::endl; B::fun(); fun2(); // using name space B; + fun2(); 等價 B::fun2(); system("pause"); return 0; }
不寫using namespace std
時,想要用cin cout的話, 使用std::cin
std::cout
定義一個命名空間爲myNum,在該命名空間中定義一個整型變量x,並給該變量賦值爲105;使用C++新特性判斷myNum命名空間下的變量是奇數仍是偶數。
4-9-C++-namespaceDemo/main.cpp
#include <iostream> #include <stdlib.h> using namespace std; namespace myNum //填寫命名空間的關鍵字 { int x = 105; } int main() { // 使用bool類型定義isOdd,做爲狀態位 bool isOdd = false; if (myNum::x % 2 == 0) { //改變狀態位的值,使其爲false isOdd = false; } else { //改變狀態位的值,使其爲true isOdd = true; } // 判斷狀態位的值 if (isOdd) { // 若是狀態位的值爲true,則打印變量x是奇數 cout << myNum::x << "是奇數"<<endl; } else { // 若是狀態位的值爲false,則打印變量x是偶數 cout << myNum::x << "是偶數"<<endl; } system("pause"); return 0; }
使用一個函數找出一個整型數組中的最大值最小值。
5-1-c++-boolNamespaceCinCout/main.cpp
一個函數, 傳入整型數組,求最大最小值
/********************************************************/ /*知識點:bool類型 命名空間 輸入輸出 */ /*題目要求: */ /* 使用一個函數找出一個整型數組中的最大值最小值。 */ /*******************************************************/ #include <stdlib.h> #include <iostream> namespace CompA { int getMaxOrMin(int *arr, int count, bool isMax) // 數組,數組元素個數,最大仍是最小(True 最大,False最小) { int temp = arr[0]; // 先拿到整個數組中的第一個元素,一旦發現比它大的,就把剛發現的賦值給它 for (int i = 1; i < count; i++) // 經典寫法int i=0; i < count; 既然咱們已經把第0個取了,咱們能夠從第一個開始比 { if (isMax) { if (temp < arr[i]) { temp = arr[i]; } } else { if (temp > arr[i]) { temp = arr[i]; } } } return temp; } } int main(void) { int arr1[4] = { 3,5,1,7 }; bool isMax = false; // 與形參區別開 std::cout << "您想要求數組{3,5,1,7}最大值仍是最小值?(0最小,1最大)" << endl; std::cin >> isMax; std::cout << CompA::getMaxOrMin(arr1, 4, isMax) << std::endl; system("pause"); // stdlib.h return 0; }