c语言运算符:C++运算符为何没有生效

C++运算符为何没有生效?
#include<iostream>
usingstd::cout;
usingstd::endl;
classCBase
{
public:
CBase()
{

}

virtualvoidDraw(constchar*str)=0;
};
classCRealClass:publicCBase
{
public:
CRealClass()
{
cout<<\"CRealClassconstruct\"<<endl;
}

virtualvoidDraw(constchar*str)
{
cout<<\"CRealClassdraw:\"<<str<<endl;
}
};
classCProxy:publicCBase
{
public:
CProxy():ptrFilePath(NULL)
{
pReal=NULL;
}

virtualvoidDraw(constchar*str)
{
if(pReal)
{
pReal->Draw(str);
}
else
{

}
}

CRealClass*LoadRealClass()
{
if(!pReal)
{
//createrealclassobjectsimplyusingconstructor
pReal=newCRealClass();
}

returnpReal;
}

///重载->运算符为何没有生效?????????????
CRealClass*operator->()
{
cout<<\"operator->becalled!\"<<endl;

returnLoadRealClass();
}

private:
//realobjectpointer
CRealClass*pReal;
constchar*ptrFilePath;
};
intmain(intargc,char*argv[])
{
//realclasswon’tbegeneratewhileusingproxy
CBase*ptrObj=newCProxy();

ptrObj->Draw(\"asdf\");

return0;
}
Tags:  c语言运算符优先级 c运算符 c语言的运算符 c语言运算符

延伸阅读

最新评论

发表评论