#include <iostream>
template <class T>
class CTestPtrBase
{
public:
operator T*() const{ return p; } //可以使得CTestPtrBase对象当做一个T*指针使用
T* operator->() const { return p; }
T* p;
};
//------------------------------------------
class ITestA
{
public:
void test() { }
};
class ITestB : public ITestA
{
};
//----------------------------------------------------------
void Test(ITestA* t)
{
}
//---------------------------------
int main()
{
CTestPtrBase<ITestA> ttt;
Test(ttt); // 如果不重载operator T*() const,那么必须写成Test(&ttt)
ttt->test();
return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。