Sau khi đọc this article trên blog của Herb Sutter, tôi đã thử nghiệm một chút và gặp phải một điều gì đó khiến tôi lo lắng. Tôi đang sử dụng Visual C++ 2005, nhưng tôi sẽ ngạc nhiên nếu điều này đã được thực hiện phụ thuộc.Tham chiếu Const đến tạm thời
Đây là mã của tôi:
#include <iostream>
using namespace std;
struct Base {
//Base() {}
~Base() { cout << "~Base()" << endl; }
};
int main()
{
const Base & f = Base();
}
Khi chạy, nó sẽ hiển thị "~Base()
" hai lần ... Nhưng nếu tôi bỏ bình luận các nhà xây dựng, nó sẽ hiển thị nó chỉ lần!
Có ai có giải thích về điều này không?
Câu trả lời tuyệt vời, cảm ơn rất nhiều Sir :) – Drealmer
Thú vị. Điều này có dẫn đến việc cắt đối tượng trong một số trường hợp không? –
"C++ 1x sẽ sửa lỗi này". Ôi trời ơi, có phải đó là điều họ đang gọi là tiêu chuẩn tiếp theo bây giờ hay đây là một trò đùa dí dỏm? – veefu