【发布时间】:2011-07-07 01:35:43
【问题描述】:
如果我想参数化创建一个对象,我当然可以创建一个在特定类上调用 new 并传递一个指针的函数。我想知道是否可以跳过该步骤并将函数指针传递给 new 运算符本身。
【问题讨论】:
-
pass a pointer to the new operator itself,什么?!? -
New 是一个操作符,它的行为类似于一个函数,它返回一个您正在创建的对象的指针。例如,从概念上(如果不是实际上),应该可以创建一个指向它的函数指针,并将其作为参数传递给函数。
-
正如您所想:
void* (*np) (size_t) = &::operator new;。只是我,还是随着时间的推移问题变得越来越拜占庭?额外问题:当你delete np;时会发生什么? -
@Kerrek,嗯,很有趣。我想我应该说一个函数的新运算符。
标签: c++ new-operator function-pointers boost-bind