前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ClickHouse C++ 如何隐藏/包装一个类

ClickHouse C++ 如何隐藏/包装一个类

原创
作者头像
jasong
发布2021-10-29 16:55:19
5610
发布2021-10-29 16:55:19
举报
文章被收录于专栏:ClickHouse

我有一个类A

代码语言:javascript
复制
class A
{
public:
    A(){}
    
    method(){};
}

A类的变种Entry,它其实和A是一毛一样的

代码语言:javascript
复制
  
    class EntryA {
    
    public:
        friend class A;

        Entry() = default;

        A *operator->() && = delete;

        const A *operator->() const && = delete;

        A &operator*() && = delete;

        const A &operator*() const && = delete;

        A *operator->() &{ return &*a; }

        const A *operator->() const &{ return &*a; }

        A &operator*() &{ return *a; }

        const A &operator*() const &{ return *a; }

    private:
        A a;

        explicit EntryA(A &a_) : a(a_) {}
   
     };

如何使用

代码语言:javascript
复制
auto entry_a = Entry(A());

// EntryA 调用 A的方法
entry_a.method();

那它能干啥呢?

- 当A为一个类的一个成员的时候,可以利用EntryA对A进行封装,进一步进行其他的操作

- xxx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我有一个类A
  • A类的变种Entry,它其实和A是一毛一样的
  • 如何使用
  • 那它能干啥呢?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档