Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Từ khóa explicit trong C++ có ý nghĩa gì?


Từ khóa explicit trong C++ dùng để đánh dấu constructor không được chuyển đổi kiểu ngầm định (implicit conversion).

Ví dụ: lớp Foo có constructor Foo(int) và Foo(const char*).

class Foo {
public:
    Foo(int n);       // cấp phát n byte
    Foo(const char *p); // khởi tạo từ chuỗi
};

Nếu viết Foo mystring = 'x';, ký tự 'x' chuyển ngầm thành int và gọi Foo(int) - không phải ý định. Để ngăn chặn, khai báo constructor là explicit:

Ví dụ

class Foo {
public:
    explicit Foo(int n);       // cấp phát n byte
    Foo(const char *p);        // khởi tạo từ chuỗi p
};