Từ khóa rõ ràng trong C ++ được sử dụng để đánh dấu các hàm tạo để không chuyển đổi kiểu ngầm. Ví dụ:nếu bạn có Foo lớp học -
class Foo { public: Foo(int n); // allocates n bytes to the Foo object Foo(const char *p); // initialize object with char *p };
Bây giờ nếu bạn thử
Foo mystring = 'x';
char 'x' được chuyển đổi hoàn toàn thành int và sau đó sẽ gọi hàm tạo Foo (int). Nhưng đây không phải là những gì đã được dự định. Vì vậy, để ngăn chặn các điều kiện như vậy và làm cho mã ít bị lỗi hơn, hãy xác định hàm tạo là rõ ràng -
Ví dụ
class Foo { public: explicit Foo (int n); //allocate n bytes Foo(const char *p); // initialize with string p };