operator重载运算符问题

template<classTYPE>classCThreadLocal{public:TYPE*GetData(){};operatorTYPE*()/////////... template<class TYPE>
class CThreadLocal {
public:
TYPE* GetData(){};
operator TYPE*()/////////////////////////////////////////////////////////////////////////
{ return GetData(); }
TYPE* operator->()///////////////////////////////////////////////////////////////////////
{ return GetData(); }
}

//迷糊了,什么时候会调用那两个重载运算符...
我问的是什么时候用到,也就是举个例子而已
展开
 我来答
匿名用户
2011-04-01
展开全部
果表明,语句CBase::operator =(son);并没有调用父类的CBase& operator=(int v)赋值运算符函数,你可以在CBase& operator=(int v)这个函数里输出一个字符来测试,本人没有发现他调用过这个语句。
CBase::operator =(son);因此,依据推测可能调用了父类的默认的赋值运算符

再次确认
CBase::operator =(son);肯定是调用了基类的默认赋值运算符,你可以通过语句来测试CBase cb1,cb2; cb1.set_iValue(7); cb2=cb1;可以看到cb1是可以使用赋值运算符赋给cb2的,因此基类的默认赋值运算符是存在的,因此你虽然重载了基类的赋值运算符,但是基类的默认的赋值运算符,其形式为CBase& operator=(const CBase& obj)仍然是存在的,没有被覆盖。所以CBase::operator =(son);是百分之百的调用的基类的默认赋值运算符。
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gis19831203
2011-03-22 · TA获得超过690个赞
知道小有建树答主
回答量:914
采纳率:0%
帮助的人:828万
展开全部
这个时候调用:
CThreadLocal<int> x;
some = (int*)x; -->调用operator TYPE*()
some = x->some_member; -->调用operator->()
你可以看看<More Effective C++>中关于智能指针的一章
更多追问追答
追问
TYPE* operator->()
//为什么要加上TYPE*
//还有()里不用定义参数的吗?
追答
->运算符似乎没有参数吧,呵呵,至于TYPE*那是返回值啊,返回的是一个原生指针.
CThreadLocal x;
x->some_func();//这句被编译器解释为:(x.operator->())->some_func();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sftxlin
2011-03-22 · 超过13用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:23万
展开全部
这样的话是优先采取用你所重载功能。也就是说,如果你用a*b的话,*的功能已经不是默认的了,而是你所要求的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loverBB_h
2011-03-22 · TA获得超过274个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:340万
展开全部
operator* Allows a smart pointer object to act as though it were the actual encapsulated interface when dereferenced.

operator-> Allows a smart pointer object to act as though it were the actual encapsulated interface when dereferenced.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式