class A
{
public:
A(){}
method(){};
}
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_) {}
};
auto entry_a = Entry(A());
// EntryA 调用 A的方法
entry_a.method();
- 当A为一个类的一个成员的时候,可以利用EntryA对A进行封装,进一步进行其他的操作
- xxx
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。