Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คำหลักที่ชัดเจนหมายถึงอะไรใน C ++


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