首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有模板的函数参数有关问题

2012-09-07 
有模板的函数参数问题首先,我有一个句柄类型:C/C++ code// 实现略templatetypename T class MemPoolPoin

有模板的函数参数问题
首先,我有一个句柄类型:

C/C++ code
// 实现略template<typename T> class MemPoolPointer;


然后,弄个简单的测试类型,里面弄个叫New的类方法,用来生成堆上对象。
C/C++ code
// 一个forward declarationclass FooBar;typedef MemPoolPointer<FooBar> FooBarPtr;// 实际的定义,无关内容略,不然太多了class FooBar: public Referenced {public:    static FooBarPtr New();};


然后,一个有引用计数的指针类型。是在MemPoolPtr上套一层
C/C++ code
template <typename T> class RefPointer {public:    // 关键问题是关于这个构造器的    RefPointer(MemPoolPointer<T>& p);};


下面问题来了:
C/C++ code
// 这样就不可以,编译时找不到合适的RefPointer函数    RefPointer<FooBar> obj1_p( FooBar::New() );// 这样先建个对象再塞进去就可以    FooBarPtr obj1 = FooBar::New();    RefPointer<FooBar> obj1_p(obj1);

为什么?
多谢啦!!

[解决办法]
FooBar::New()返回一个临时对象,const引用才能引用右值,左值引用不能引用右值。

热点排行