你能解释一下这个神秘的密码吗? 在调试ActuCabro RAD Studio中的C++代码时发现了这一点。它看起来像是在编译,但坦率地说,虽然它的作用似乎很明显,但我不知道它实际上在做什么 TObject *objPtr ( new TObject() );

你能解释一下这个神秘的密码吗? 在调试ActuCabro RAD Studio中的C++代码时发现了这一点。它看起来像是在编译,但坦率地说,虽然它的作用似乎很明显,但我不知道它实际上在做什么 TObject *objPtr ( new TObject() );,c++,C++,如果有人能给出合理的解释,我将不胜感激。这将在堆上创建一个TObject类型的对象,并将其位置存储在名为objPtr的TObject指针中。为了防止内存泄漏,应该在某个时候通过deleteobjPtr行将其删除。它使用直接初始化语法将objPtr初始化到新分配的Tobject。在大多数实际应用中,它相当于Tobject*objPtr=newtobject()C++允许您使用类似于对象构造函数的语法初始化内置类型(如整数或指针)。您还可以将这种类似构造函数的语法用作类型转换操作,例如intfoo=

如果有人能给出合理的解释,我将不胜感激。

这将在堆上创建一个TObject类型的对象,并将其位置存储在名为objPtr的TObject指针中。为了防止内存泄漏,应该在某个时候通过delete
objPtr
行将其删除。

它使用直接初始化语法将
objPtr
初始化到新分配的Tobject。在大多数实际应用中,它相当于
Tobject*objPtr=newtobject()

C++允许您使用类似于对象构造函数的语法初始化内置类型(如整数或指针)。您还可以将这种类似构造函数的语法用作类型转换操作,例如
intfoo=some_函数(int(bar))
。您需要了解构造函数(ctor)。这使用了C++特有的语法,它反映了CtoR是如何调用的,而不是通常使用的类似C语言的语法。通常情况下,您会看到这不是针对指针,而是针对在堆栈上创建的类实例。问得好+1.虽然所有答案都是正确的,我想在这些答案出现之前先给出一个这样的答案,但我读到的问题是,为什么它要初始化一个TObject(而不是某个派生对象)?e、 很明显,它在做答案所说的事情,但实际目标是什么?