n*****e 发帖数: 17 | 1 里面写了个pool class的interface, 请问它的constructor该怎么实现:
interface 如下:
class Pool {
public:
Pool(size_t n); // Create an allocator for
// objects of size n
void * alloc(size_t n) ; // Allocate enough memory
// for one object; follow
// operator new conventions
// from Item 8
void free( void *p, size_t n); |
t****t 发帖数: 6806 | 2 书上不是有吗?
【在 n*****e 的大作中提到】 : 里面写了个pool class的interface, 请问它的constructor该怎么实现: : interface 如下: : class Pool { : public: : Pool(size_t n); // Create an allocator for : // objects of size n : void * alloc(size_t n) ; // Allocate enough memory : // for one object; follow : // operator new conventions : // from Item 8
|
n*****e 发帖数: 17 | 3 没有啊,书上有一个airplane的例子,后来介绍了这个interface,没有讲怎么实现
我想alloc和free的实现和airplane里的new和delete的差不多,可是另外建一个pool类
的话,alloc和free怎么能通airplane进去呢?
而且pool这个类没有member,很奇怪,没弄懂这一部分
【在 t****t 的大作中提到】 : 书上不是有吗?
|
P****i 发帖数: 12972 | 4 read boost's source code.
【在 n*****e 的大作中提到】 : 没有啊,书上有一个airplane的例子,后来介绍了这个interface,没有讲怎么实现 : 我想alloc和free的实现和airplane里的new和delete的差不多,可是另外建一个pool类 : 的话,alloc和free怎么能通airplane进去呢? : 而且pool这个类没有member,很奇怪,没弄懂这一部分
|
t****t 发帖数: 6806 | 5 我记得第二版上是有例子的,并且这个pool是个template.但是我第二版的书丢了,也许
我记错了.把pool分开的话,你仍然需要重定义airplane::operator new和delete来调用
pool::alloc()/free().
anyway,你的确可以参考现成的library,没必要自己写.
【在 n*****e 的大作中提到】 : 没有啊,书上有一个airplane的例子,后来介绍了这个interface,没有讲怎么实现 : 我想alloc和free的实现和airplane里的new和delete的差不多,可是另外建一个pool类 : 的话,alloc和free怎么能通airplane进去呢? : 而且pool这个类没有member,很奇怪,没弄懂这一部分
|