我有一个类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