C 11新標準執行緒庫之方法五

2021-09-24 05:14:27 字數 1135 閱讀 9732

#include#include#include#include using namespace std;

class a

a(const a & a) :m_i(a.m_i)

~a()

private:

int m_i;

};void myprint(const int i ,const a& mybuf)

int main()

#include#include#include#include using namespace std;

class a

a(const a & a) :m_i(a.m_i)

~a()

private:

int m_i;

};void myprint(const int i ,const a& mybuf)

int main()

cout << "i love china !" << endl;

return 0;

}

//使用myobj.detach() 注意總結:

//(a)若傳遞int 這種簡單型別引數,建議都是值傳遞,不要用引用,防止節外生枝

//(b)如果傳遞類物件,避免隱式型別轉換。全療都在建立執行緒這一行就構建出臨時物件來,然後在函式引數,用引用來接,否則要一次構造,二次拷貝

//總結:建議不使用detch(),只使用join().這樣就不存在區域性變數失效,導致執行緒對記憶體的非法引用問題

//執行緒id

//c++ 標準庫 std::this_thread::get_id()來獲取

#include#include#include#include using namespace std;

class a

a(const a & a) :m_i(a.m_i)

~a()

private:

int m_i;

};void myprint(const a& mybuf)

int main()

cout << "i love china !" << endl;

return 0;

}

C 11新標準之五 constexpr

常量表示式必須在編譯期間計算出它的值並且 它的值不可以被改變。在c 11中,我們可以通過宣告constexpr讓編譯器確定乙個變數是不是常量表示式,宣告為constexpr的變數是const型別的變數,它必須由常量表示式來初始化。例如 cpp view plain copy constexpr in...

C 11新標準總結

c 11新標準出現已久,在此主要對它做乙個總結 c 11新增型別long long和unsigned long long,以支援64位的整型,char16 t,char32 t,以支援16位和32位的字元表示。用大括號括起來的列表 初始化列表 的適用範圍,使其可用於所有內建型別和使用者定義的型別。使...

C 11新標準之範圍for語句

說起for語句,我們都不會陌生,因為在迴圈中經常會用for語句來遍歷一些陣列什麼的,就形如以下的for迴圈,是我們最常見的 for int i 0 i 5 i 範圍for語句可以遍歷容器或者其他序列的所有元素。以下用乙個小小的 測試片段說明一下這個新特性的使用方法 傳統寫法,遍歷每個string型別...