這裡有一些是新特性,有一些是為了描述新特性另外說明的一些東西。參考**入口
這篇文章對三種繼承方式講的很明白,感覺自己多說乙個字都不對勁。
成員預設是private,繼承預設也是private。
參考**入口 基類中的virtual…=0,為純虛函式,否則為虛函式。
class person
;class student : public person
;int main()
class allthing{};
class person:public allthing
;class student : public person{}; //虛函式可以繼承也可以被繼承
在文章的總結2有一段話:虛函式必須實現,如果不實現,編譯器將報錯。
感覺不能理解,不知道這句話是在何種情況下是對的。對於上面的**來說,既然抽象類可以被繼承,那麼子類是沒有實現虛函式的,也沒有報錯。
參考**入口 優先看
參考**入口 深入了解
externint a; 並不是像 int a; 一樣在記憶體開闢空間,語**讀可為 在其它檔案中引入int型變數a
class student
;int student::x = 99;//初始化
int main()
花括號**初始化。
initializer_list:這個東西可以支援我們初始化的花括號使用
在使用vector vec1;時,會自動生成initializer_list,initializer_list內含乙個array的頭指標和長度
參考**入口
注意:感覺講的很好。但是我認為有乙個錯誤,原始碼是沒有內含陣列的,只是拿了乙個指標和長度進來。可能版本不同把,我就沒有深究了。對於它的使用標準庫真是大量用了。
int a;cin>>a;
int b=2;
int c=3;
int d=max( );//香 發現新大陸啊
cout《多用於建構函式中,explicit建構函式是用來防止隱式轉換的。很小的乙個東西,看之前如果知道類物件的隱式轉換和顯示轉換就很容易懂了。
for( decl : coll )
搭配auto香的一批,該有全域性的begin()和end(),引數放容器。
入口 這裡有它的底層原始碼,底層還是用了常用的for,穿入頭指標和尾指標,頭指標++,當頭指標等於尾指標時退出迴圈。右值引用,for結束則析構。
[參考**入口](
在寫**的時候,』='是不能省略的,和兩個關鍵字是乙個整體,或者說,這就是乙個關鍵字。
生成類的時候,會自動調動四種函式,=delete會禁用刪除當前函式,=****ult用於顯式要求編譯器提供合成版本的四大函式。
class text
;int main()
//當建立乙個類的時候,編譯器會自動建立四種函式,構造,析構,拷貝,複製。
用using定義別名,這個和typedef類似,乙個最大的不同是using可以別名化模板。
templateusing vec = std::vector>;//給乙個化名
veccoll;
//**摘自侯捷老師的課程
模板模板引數,這個感覺用的很少,想深究的自己去看。
使用using定義別名,和typedef功能一樣
示例:using func = void(*)(int,int);
擴充,在string標頭檔案中,都有basic_string string;
basic_string的原始碼在它的.**件裡面,三千多行,我就不看了。
參考**入口
當函式不會有異常的時候,是應只當noexcept,並且是在關鍵字實在函式的宣告或者是定義之後的。
對於異常,侯捷老師有專門的一講課,實際開發中異常處理經常出現,值得深究。
參考**入口
當父類的虛函式在子類中實現的時候使用,可以避免派生類中忘記重寫虛函式的錯誤
當引數不一致時,編譯器會報錯給予提示
表明當前類是不可繼承的。
說白了就是當前類是斷子絕孫的,只有爸爸,沒有兒子。
另外,函式後面加上const,參考**入口
說明當前函式為唯讀操作
這篇講的比較深入
編譯器自行推導型別。
這篇的使用比較直觀
知道語法即可,深入請自行了解。
csdn參考連線
可以看作是乙個結構體或者是泛化的pair,只不過配備了很多的函式進行操作。
參考**入口 這是我在看pair可能到的,類模板一大串。
// implicit constructiable for this type
template ::value &&
std::is_copy_constructible::value &&
std::is_convertible::value &&
std::is_convertible::value, int>::type = 0>
constexpr pair(const ty1& a, const ty2& b)
: first(a), second(b)
is_convertible和is_copy_constructible參考**入口
在pair中有很多類,上面是兩個例子。
用於給各位學習者參考,僅供參考。
也是對自己的學習記錄—
C 11新特性學習筆記(二)
c 11引入了lambda 匿名函式 這樣就可以在乙個函式只需呼叫一次的地方使用了,類似內聯函式。c 11 的 lambda 表示式規範如下 capture params mutable exception attribute ret 1 capture params ret 2 capture p...
學習C 新特性(二)
1 右值引用 c 11之前,左值 表示式之後還持久存在的物件 右值 表示式結束後不存在的臨時物件 c 11之後 右值分純右值 將亡值 純右值 純粹的字面量 如 10,true 或者求值結果相當於字面量或匿名臨時物件。字串字面量只有在類中是右值,在普通函式中是左值 將亡值 即將被銷毀卻能移動的值。右值...
新特性筆記
特點 framgent 它不是activity,也不是四大元件之一,不需要androidmanifest.xml註冊,好比是乙個縮小版的activity,有著自己的介面和生命週期方法,以及接受屬於它自己的輸入事件 fragment 在 android 3.1版本中引入,片段可以復用 fragment...