explicit用來(lái)聲明只有一個(gè)確定參數(shù)的對(duì)象
class test{
public:
explicit test(int a); //單個(gè)參數(shù)
explicit test(int a, int b = 5); //只有一個(gè)參數(shù)待確定
};
explicit是為了防止隱式類型轉(zhuǎn)換 比如這樣
test ctx = 5;
除此之外 還可以禁止隱式的拷貝構(gòu)造
explicit test(test&);
test a(2);
test b = a; //相當(dāng)于 test b = test(a) 隱式拷貝構(gòu)造 引發(fā)編譯錯(cuò)誤