Laa*_*vaa 3 c++ new-operator delete-operator
在c ++中将new()和delete()实现为运算符的用途或原因是什么?使它成为操作员而不是功能有什么好处?
该new操作者不能是一个函数,因为它接受一个类型作为参数.您不能将其写new foo_type为函数调用,因为foo_type它不是生成值的表达式,而是类型名称.
该delete操作可能是超载了不同指针类型的函数,和一个额外的可选bool的参数delete []语义.为什么有一个delete运算符可能与其new对应物对称.
也就是说,模板函数可以将类型作为模板参数.但是new和delete运营商一直在模板之前.
此外,可以编写一个函数,该函数采用一种类型的原型实例,而不是一种类型,从中构造一个对象: newobj(m_class(constructor_arg)).newobj对于不同类型,这会重载.它分配空间,将构造复制到其中,并返回对象.
所以最后,设计反映了设计师的品味和想法.
在语言设计中,操作符和函数(以及语句,声明等)之间的分离本身并不是绝对必要的.
| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |