คีย์เวิร์ดที่ชัดเจนใน C++ ใช้เพื่อทำเครื่องหมายคอนสตรัคเตอร์เพื่อไม่ให้แปลงประเภทโดยปริยาย ตัวอย่างเช่น หากคุณมีคลาส Foo −
class Foo {
public:
Foo(int n); // allocates n bytes to the Foo object
Foo(const char *p); // initialize object with char *p
}; ถ้าได้ลอง
Foo mystring = 'x';
อักขระ 'x' ถูกแปลงโดยปริยายเป็น int จากนั้นจะเรียกตัวสร้าง Foo(int) แต่นี่ไม่ใช่สิ่งที่ตั้งใจไว้ ดังนั้นเพื่อป้องกันเงื่อนไขดังกล่าวและทำให้โค้ดมีข้อผิดพลาดน้อยลง ให้กำหนดคอนสตรัคเตอร์อย่างชัดเจน -
ตัวอย่าง
class Foo {
public:
explicit Foo (int n); //allocate n bytes
Foo(const char *p); // initialize with string p
};