Sử dụng để trang trí các nhà thầu; một hàm tạo nên trang trí không thể được trình biên dịch sử dụng cho các chuyển đổi ngầm định.
C++ cho phép lên đến một chuyển đổi người dùng cung cấp, trong đó "người dùng cung cấp" phương tiện "bằng phương tiện của một constructor lớp", ví dụ như, trong:
class circle {
circle(const int r) ;
}
circle c = 3 ; // implicit conversion using ctor
trình biên dịch sẽ gọi ctor vòng tròn ở đây , constructinmg circle c
với giá trị là 3 cho r
.
explicit
được sử dụng khi bạn không muốn điều này. Thêm phương tiện rõ ràng rằng bạn phải rõ ràng xây dựng:
class circle {
explicit circle(const int r) ;
}
// circle c = 3 ; implicit conversion not available now
circle c(3); // explicit and allowed
có thể trùng lặp: http://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-in-c-mean –