คีย์เวิร์ดที่ชัดเจนใน 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 };