分享

重载指针

 torony 2016-08-04
#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;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多