在C++中弯淘,explicit
關(guān)鍵字用來(lái)修飾類(lèi)的構(gòu)造函數(shù)倾哺,被修飾構(gòu)造函數(shù)類(lèi)不能進(jìn)行隱式類(lèi)型轉(zhuǎn)換令宿,只能進(jìn)行顯式類(lèi)型轉(zhuǎn)換楣号。
explicit
關(guān)鍵字只能用在單個(gè)參數(shù)的構(gòu)造函數(shù)上
class Sales_data {
public:
Sales_data() = default;
Sales_data(const std::string &s, unsigned n, double p):
bookNo(s), units_sold(n), revenue(p*n) { }
explicit Sales_data(const std::string &s): bookNo(s) { }
explicit Sales_data(std::istream&);
explicit
修飾的構(gòu)造函數(shù)只能用于直接初始化
Sales_data item(null_book); //正確:直接初始化
Sales_data item2 = null_book; //錯(cuò)誤最易,不能將explicit構(gòu)造函數(shù)用于拷貝形式的初始化過(guò)程