D *pd=new D; 问个这个问题. 不难吧.?

时间:2022-06-27 23:41:04
问一个很菜的问题. 

  D *pd=new D;  为什么是对的. 
我类D 并没有重载这两个操作符啊.

13 个解决方案

#1


执行默认的操作啊

#2


可是我没有重载 new   *  这两个运算符啊.

也能用吗?   

可是我没有看见什么书上写这两个是默认的呢

#3


汗. 语法默认就是这样啊。你不可能说“ const int a   我没有重载const 啊”

#4


引用 3 楼 chenzhp 的回复:
汗. 语法默认就是这样啊。你不可能说“ const int a  我没有重载const 啊”


const 又不是操作符.

#5


这个不需要重载啊。new指明将这个对象在堆上存储,而不是栈上。使用new声明对象后会返回一个指向对象的指针。
D *pd声明了一个D类型的指针,正好存放这个返回值。这些都不需要你做操作的。操作系统和编译器知道怎么做。这样说是不是明白?
你就知道声明对象后使用不使用new只是存放地方的区别,然后指针也直接声明即可。因为指针并不是一个运算符,它只是声明来指向一个特定对象的内存单元而已。

#6


有默认的

#7


引用 6 楼 sc_valentine21 的回复:
有默认的


要是默认的都这么多了. 还要重载操作符搞什么啊.

#8


找到了:

在 任何编译器实现的库里面,至少有一个全局的new和delete的实现,并且,这个实现是可以被(用户)替换(replaceable)的.

#9


呵呵!学习

#10


引用 5 楼 xtra 的回复:
这个不需要重载啊。new指明将这个对象在堆上存储,而不是栈上。使用new声明对象后会返回一个指向对象的指针。
D *pd声明了一个D类型的指针,正好存放这个返回值。这些都不需要你做操作的。操作系统和编译器知道怎么做。这样说是不是明白?
你就知道声明对象后使用不使用new只是存放地方的区别,然后指针也直接声明即可。因为指针并不是一个运算符,它只是声明来指向一个特定对象的内存单元而已。
,...

#11



在 任何编译器实现的库里面,至少有一个全局的new和delete的实现,并且,这个实现是可以被(用户)替换(replaceable)的. 
 
  顶一下!!!!

#12


这2个比较特别
你没重载那就会调用系统默认的那个呗

#13


类首先查找类内部的new和delete
没重载时 调用全局的new和delete

#1


执行默认的操作啊

#2


可是我没有重载 new   *  这两个运算符啊.

也能用吗?   

可是我没有看见什么书上写这两个是默认的呢

#3


汗. 语法默认就是这样啊。你不可能说“ const int a   我没有重载const 啊”

#4


引用 3 楼 chenzhp 的回复:
汗. 语法默认就是这样啊。你不可能说“ const int a  我没有重载const 啊”


const 又不是操作符.

#5


这个不需要重载啊。new指明将这个对象在堆上存储,而不是栈上。使用new声明对象后会返回一个指向对象的指针。
D *pd声明了一个D类型的指针,正好存放这个返回值。这些都不需要你做操作的。操作系统和编译器知道怎么做。这样说是不是明白?
你就知道声明对象后使用不使用new只是存放地方的区别,然后指针也直接声明即可。因为指针并不是一个运算符,它只是声明来指向一个特定对象的内存单元而已。

#6


有默认的

#7


引用 6 楼 sc_valentine21 的回复:
有默认的


要是默认的都这么多了. 还要重载操作符搞什么啊.

#8


找到了:

在 任何编译器实现的库里面,至少有一个全局的new和delete的实现,并且,这个实现是可以被(用户)替换(replaceable)的.

#9


呵呵!学习

#10


引用 5 楼 xtra 的回复:
这个不需要重载啊。new指明将这个对象在堆上存储,而不是栈上。使用new声明对象后会返回一个指向对象的指针。
D *pd声明了一个D类型的指针,正好存放这个返回值。这些都不需要你做操作的。操作系统和编译器知道怎么做。这样说是不是明白?
你就知道声明对象后使用不使用new只是存放地方的区别,然后指针也直接声明即可。因为指针并不是一个运算符,它只是声明来指向一个特定对象的内存单元而已。
,...

#11



在 任何编译器实现的库里面,至少有一个全局的new和delete的实现,并且,这个实现是可以被(用户)替换(replaceable)的. 
 
  顶一下!!!!

#12


这2个比较特别
你没重载那就会调用系统默认的那个呗

#13


类首先查找类内部的new和delete
没重载时 调用全局的new和delete