điều Tò mò với g ++ (có thể cũng với trình biên dịch khác?):C++ phân bổ trên stack hành động một cách tò mò
struct Object {
Object() { std::cout << "hey "; }
~Object() { std::cout << "hoy!" << std::endl; }
};
int main(int argc, char* argv[])
{
{
Object myObjectOnTheStack();
}
std::cout << "===========" << std::endl;
{
Object();
}
std::cout << "===========" << std::endl;
{
Object* object = new Object();
delete object;
}
}
Compied với g ++:
===========
hey hoy!
===========
hey hoy!
Loại thứ nhất là phân bổ không xây dựng đối tượng. Tôi đang thiếu gì?
Hãy thử 'Object myObjectOnTheStack; 'tức là nếu không có sự'() ' – Justicle
@Jerry, nhờ tôi sửa chữa các thuật ngữ – JaredPar
... "thay vì * tuyên bố * một chức năng" ... – Potatoswatter