码迷,mamicode.com
首页 > 其他好文 > 详细

operator ->重载是怎么做到的?

时间:2019-08-31 23:45:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:int   代理类   access   stack   pre   overload   overflow   定义   target   

https://stackoverflow.com/questions/8777845/overloading-member-access-operators-c

struct client
    { int a; };

struct proxy {
    client *target;
    client *operator->() const
        { return target; }
};

struct proxy2 {
    proxy *target;
    proxy &operator->() const
        { return * target; }
};

void f() {
    client x = { 3 };
    proxy y = { & x };
    proxy2 z = { & y };

    std

并非如普通操作符一样在class内部定义一个函数做重载,而是通过一个代理类.

operator ->重载是怎么做到的?

标签:int   代理类   access   stack   pre   overload   overflow   定义   target   

原文地址:https://www.cnblogs.com/sdu20112013/p/11440680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!