3

我正在阅读“Thinking in c++”的第 13 章。以下内容来自书中。

我的类型 *fp = new MyType(1, 2);

在运行时,调用 malloc(sizeof(MyType)) 的等价物,并使用结果地址作为 this 指针调用 MyType 的构造函数,使用 (1, 2) 作为参数列表。到指针分配给 fp 的时候。

我被粗体字弄糊涂了。这是什么意思?

4

2 回答 2

5

这是一个非常松散的解释,但基本上是说结果是一个内存位置,就像malloc会返回一样,并且在该内存位置this使用带有该参数列表的构造函数构造一个对象(是指向当前对象的指针)。

于 2013-02-12T21:51:53.950 回答
4

new运算符动态分配内存时,它会返回一个指向该内存的指针(类似于malloc()C 中的工作方式)。

在 C++ 中,每个非静态方法都可以访问它所调用的当前对象(否则世界各地的 C++ 程序员会遇到严重的麻烦)。这是方法的“隐式参数”,在构造函数中也是如此,可以通过关键字访问它this

这句话的意思是,在创建对象之后,操作符会在它刚刚分配的内存上调用构造函数。因为这是唯一有意义的事情。:)

于 2013-02-12T21:53:38.927 回答