English 中文(简体)
c++ 在粗略采取行动时分配
原标题:c++ allocation on the stack acting curiously

使用g++(也可能适用于其他编译器)会有一些奇怪的事情:

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;
        }
}

a. 与g++合并:

===========
hey hoy!
===========
hey hoy!

www.un.org/Depts/DGACM/index_spanish.htm 第一种分配方式不构成标的。 我失踪了什么?

最佳回答

第一种构建类型实际上并不是构建对象。要使用默认构造函数在堆栈上创建对象,必须省略()

Object myObjectOnTheStack;

您目前的定义方式是声明一个名为myObjectOnTheStack的函数,该函数返回一个Object对象。

问题回答

这是“最恼人的解析”的又一个例子。您并没有定义一个对象,而是声明了一个名为myObjectOnTheStack的函数,该函数不带参数并返回一个Object

Object myObjectOnTheStack();

是一个函数myObjectOnTheStack的前向声明,它不带参数并返回一个Object

你想要的是什么? (nǐ xiǎng yào de shì shén me?)

Object myObjectOnTheStack;




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签