Tôi hơi bối rối sau khi đọc nội dung nào đó trong sách giáo khoa. Về mã:Đây có phải là dàn diễn viên hoặc xây dựng không?
void doSomeWork(const Widget& w)
{
//Fun stuff.
}
doSomeWork(Widget(15));
doSomeWork()
mất một tham số const Widget&
. Sách giáo khoa, hiệu quả C++ III, nói rằng điều này tạo ra một đối tượng Widget tạm thời để chuyển tới doSomeWork. Nó cho biết rằng điều này có thể được thay thế bằng:
doSomeWork(static_cast<Widget>(15));
vì cả hai phiên bản đều là phôi - đầu tiên chỉ là kiểu C có chức năng. Tôi đã có thể nghĩ rằng Widget(15)
sẽ gọi một constructor cho widget lấy một tham số nguyên mặc dù.
Trình tạo hàm có được thực hiện trong trường hợp này không?
@Constantinius: Chính xác thì có gì sai ở đây? – AnT
Tôi đã chỉnh sửa câu trả lời của bạn. –