1auto
在早期c/c++中auto的含義是:使用auto修飾的變數,是具有自動儲存器的區域性變數
c++11中,
auto不再是乙個儲存型別指示符,而是作為乙個新的型別
指示符來指示編譯器,auto宣告的變數必須由編譯器在編譯時期推導而得。`
int test()
int main()
auto 注意的事項
(1)必須對其進行初始化,在種「型別」的宣告,而是使用auto定義變數時必須對其進行初始化,在編譯階段編譯器需要根據初始化表示式來推導auto的實際型別。因此auto並非是一種「型別」的宣告,而是乙個型別宣告時的「佔位符」,編譯器在編譯期會將auto替換為變數實際的型別。
auto的使用規則
1. auto與指標和引用結合起來使用
用auto宣告指標型別時,用auto和auto*沒有任何區別,但用auto宣告引用型別時則必須加&
int main()
在同一行定義多個變數
當在同一行宣告多個變數時,這些變數必須是相同的型別,否則編譯器將會報錯,因為編譯器實際只對
第乙個型別進行推導,然後用推導出來的型別定義其他變數。
auto a = 1, b = 2;
auto c = 3, d = 4.0; // 該行**會編譯失敗,因為c和d的初始化表示式型別不同
auto不能使用的地方
1 auto不能作為函式的引數
此處**編譯失敗,auto不能作為形參型別,因為編譯器無法對a的實際型別進行推導
void test(auto a)
2auto不能直接用來宣告陣列
void test()
auto b=;
}錯誤3 auto不能定義類的非靜態成員變數
4例項化模板時不能使用auto作為模板引數
2範圍for
void test()
;for (int i = 0; i < sizeof(array) / sizeof(array[0]); ++i)
array[i] = 2;
for (int p = array; p < array + sizeof(array)/ sizeof(array[0]); ++p)
cout << *p << endl; }
for迴圈後的括號由冒號「 :」分為兩部分:第一部分是範圍內用於迭代的變數,
第二部分則表示被迭代的範圍。範圍for與普通的迴圈類似,也可以用continue和break
void test()
;for(auto& e : array) e = 2;
for(auto e : array)
cout << e << " ";
return 0; }
範圍for的使用條件
1範圍必須確定
對於陣列而言,就是陣列中第乙個元素和最後乙個元素的範圍;對於類而言,應該提供begin和end的
方法,beginn和end就是for迴圈迭代的範圍。
void testfor(int array)
null實際是乙個巨集,在傳統的c標頭檔案(stddef.h)中,可以看到如下**
#ifndef null
#ifdef __cplusplus
#define null 0
#else
#define null ((void *)0)
#endif
#endif
可以看到,null可能被定義為字面常量0,或者被定義為無型別指標(void*)的常量。不論採取何種定義,在使用空值的指標時,都不可避免的會遇到一些麻煩比如
void f(int) {
cout<<"f(int)"化為指標型別,
1在使用nullptr表示指標空值時,不需要包含標頭檔案,因為nullptr是c++11作為新關鍵字引入的。
2在c++11中,sizeof(nullptr) 與 sizeof((void*)0)所佔的位元組數相同。
3 為了提高**的健壯性,在後續表示指標空值時建議最好使用nullptr。
範圍管理和範圍蔓延
1 範圍管理的前提 前提是專案的定義。專案是企業哪個戰略方向下的產物,專案想完成哪些具體目標?只有定義明確了,才有範圍。範圍必須緊密圍繞著定義來開展。範圍不足或範圍蔓延都會對專案產生影響 1 範圍管理包括了兩部分 一部分是實體的產品,比如開發出來的一套軟體 另一部分是專案的商業方案 銷售方案 服務體...
範圍確認和範圍控制
範圍確認 範圍確認是專案干係人正式接受已完成的專案範圍的過程。範圍確認需要審查可交付物和工作成果,貫穿於整個專案。輸入工具與技術 輸出1.範圍說明書 2.wbs字典 3.範圍管理計畫 4.交付物 1.檢查 1.已接受的交付物 2.變更申請 3.推薦的糾正措施 輸入4.交付物。那些已經完成或部分完成的...
範圍管理和範圍蔓延
1 範圍管理的前提 前提是專案的定義。專案是企業哪個戰略方向下的產物,專案想完成哪些具體目標?只有定義明確了,才有範圍。範圍必須緊密圍繞著定義來開展。範圍不足或範圍蔓延都會對專案產生影響 2 範圍管理包括了兩部分 一部分是實體的產品,比如開發出來的一套軟體 另一部分是專案的商業方案 銷售方案 服務體...