C++11 學習 間隔更新中
1、*this 返回執行它的的對象的引用,this返回的是地址,這涉及C++對象模式有可能是對象的首地址,有可能是首地址加上虛表的長度, 一般是*this ,有不同意見的可以提出來討論
2、初始化列表的應用
主要有:內置類型,自定義類型,初始化列表構造函數,拷貝函數,賦值函數,類,const常量
好處有:初始化多個變量方便,避免隱式轉換。
要註意:初始化列表不僅是構造函數有,構造函數的初始化列表相當於把內置的數據顯示的列出來初始化,所以構造函數是有參的。
3、const 用法,聲明變量
修飾參數:防止函數的內部參數修改了入參。
成員函數後面使用:表明防止成員函數內部修改成員變量。
函數返回前面使用:表明返回值不能被修改。一般用於引用 ,指針,防止內部成員被外部調用者篡改如operator+不能被改了。這樣的話 *p=返回值,則p應該屬於底層const。
以上是我個人理解,如有不正確請指證,謝謝!以後的學習心得持續更新中。 2017.8.20
C++11 學習 間隔更新中
相關推薦
C++11 學習 間隔更新中
返回值 聲明變量 常量 指針 用法 地址 拷貝 構造函數 意見 1、*this 返回執行它的的對象的引用,this返回的是地址,這涉及C++對象模式有可能是對象的首地址,有可能是首地址加上虛表的長度, 一般是*this ,有不同意見的可以提出來討論 2、初始化列表的應用
2018/10學習筆記[更新中]
如果有幫助到您,還望Follow&Start https://github.com/FuGaZn 使用maven搭建一個模板java專案 https://github.com/FuGaZn/Notebook/blob/master/其他/maven.md 把一個已有專
swift學習總結(更新中...)
1.Array和[String]的轉換 比如定義陣列變數的時候定義為: var cellSettingArray = [[[String:AnyObject]]]() 但是獲取的資料來源是 let array:NSArray = NSArray.init(cont
C++11::遍歷tuple中的元素
轉自:https://blog.csdn.net/lanchunhui/article/details/49868077 在設計tuple的遍歷程式之前,我們不妨先進行std::pair的列印工作: // #include <utility> cout << make
C++11 學習筆記
筆記 c++11 使用 ++ har sha 不可 c++ 內存 unique_ptr 可以實現如下功能: 1、為動態申請的內存提供異常安全 2、講動態申請的內存所有權傳遞給某函數 3、從某個函數返回動態申請內存的所有權 4、在容器中保存指針 5、auto_ptr 應該具有
c++11多執行緒中的互斥量
寫在前面 在多執行緒程式中互斥量的概念十分重要,要保護執行緒之間的共享資料,互斥量的lock、unlock、try_lock函式,以及類模板lock_guard、unique_lock十分重要 栗子 首先先看一下,沒有再共享資料上做任何保護的程式: #include <iost
C++11學習筆記:std::move和std::forward原始碼分析
std::move和std::forward是C++0x中新增的標準庫函式,分別用於實現移動語義和完美轉發。下面讓我們分析一下這兩個函式在gcc4.6中的具體實現。 預備知識 引用摺疊規則: X& + & => X& X&& +
C++11學習9---移動建構函式
主要講的是如何實現移動構造。 1.移動構造的原因 這個移動構造,或者移動拷貝賦值,有竊取資源的意思。 這個竊取資源時對於指標持有的資源來說的。 而這個竊取是通過在建構函式與過載拷貝賦值的時候,編碼將當前的指標指向資源,再將原來的指標,指向nullptr實現的。 當然,你也可
PTA|團體程式設計天梯賽-練習題目題解錦集(C/C++)(持續更新中……)
PTA|團體程式設計天梯賽-練習題目題解錦集(持續更新中) 實現語言:C/C++; 歡迎各位看官交流討論、指導題解錯誤;或者分享更快的方法!! 題目連結:https://pintia.cn/problem-sets/994805046380707
C++11學習筆記-----執行緒庫std::thread
在以前,要想在C++程式中使用執行緒,需要呼叫作業系統提供的執行緒庫,比如linux下的<pthread.h>。但畢竟是底層的C函式庫,沒有什麼抽象封裝可言,僅僅透露著一種簡單,暴力美 C++11在語言級別上提供了執行緒的支援,不考慮效能的情況下可
c++11學習筆記之(iostream)緩衝區
c++ primer 5 中page 23頁中術語表中緩衝區(buffer)概念不是很清楚。故終結如下 緩衝區(buffer)一個儲存區域,用於儲存資料。IO裝置通常將輸入/輸出資料儲存在一個緩衝區中,讀寫緩衝區的動作通常與程式中的動作是無關的。我們可以顯示的重新整理輸出緩
C++ 11學習(1):lambda表示式
#include <iostream> #include <vector> #include <functional> using namespace std; vector<function<int(int)>&
C++11學習筆記-----互斥量以及條件變數的使用
在多執行緒環境中,當多個執行緒同時訪問共享資源時,由於作業系統CPU排程的緣故,經常會出現一個執行緒執行到一半突然切換到另一個執行緒的情況。以多個執行緒同時對一個共享變數做加法運算為例,自增的彙編指令大致如下,先將變數值存放在某個暫存器中(eax),然後對暫存器
[cpp].c++11學習筆記-std thread
std::thread用於啟動執行緒,可以用作跨平臺的執行緒庫。 它啟動執行緒的方式很靈活,可以支援C函式,類成員函式,類靜態函式等。 #include <thread> //標頭檔
C++11學習筆記——收藏網址
部落格:http://purecpp.org/https://www.cnblogs.com/qicosmos/category/466797.htmlgithub地址:https://github.com/qicosmos/cosmos標準:ISO/IEC 144882:2
各種內排序演算法的C++實現(不斷更新中)
和很多計算機系的同學們一樣,我在大學二年級時也學了《資料結構》這門課。當時我的老師是一箇中科大的博士,現在已經是教授了。他在課上曾經這樣評價這門課:《資料結構》幾乎是所有計算機課程的基礎課,如果把這門課學好了,其他的專業課就不成問題了。還有,IT公司的面試經常涉及
【C++11學習筆記】返回型別後置語法
本次學習3個知識點: (1)auto推導型別 (2)decltype推導表示式的型別 (3)返回型別後置語法 泛型程式設計中經常遇到的寫一個加法函式: template <typename R, typename T, typename U>
SpringBoot原始碼學習(更新中)
最近在專案中運用了Springboot,簡單的學習了簡單的使用,於是想去看看原始碼是如何實現的。 自己也是第一次嘗試看原始碼,結合了網上的東西和自己的理解,在部落格裡寫點東西,做做積累, 如果其中哪些地方解釋有問題, 歡迎老司機指出 參考文章: 1.https://my.o
【C++11學習筆記】型別判斷的type_traits學習
一、簡單的type_traits 我理解的type_traits是利用C++模板特性和static、enum特性定義編譯器常量,例如 //std::integral_constant原始碼 typelate<class T, T v> str
C++11學習筆記-----獲取非同步操作執行結果
在多執行緒環境中,不管是傳遞lambda還是傳遞函式指標,再或者是傳遞函式物件給std::thread,都很難獲取執行函式返回值。在以前,只能將結果以引用的形式作為執行緒函式引數的一部分以此儲存返回值,但是仍然存在很大侷限性,甚至不太美觀。C++11引入的std