LoginSignup
1
0

OperatorのOverLoad 成員アクセス演算子

Posted at

概要

成員アクセス演算子をオーバーロードすることで、カプセル化されたデータメンバに対して直接アクセスする方法をカスタマイズすることができます。これは、特定のクラスや構造体がデータの内部表現を隠蔽し、データへのアクセスを制御するために使用されます。

使用場面

スマートポインタ

class SmartPtr {
private:
    SomeClass* ptr;
public:
    SmartPtr(SomeClass* p) : ptr(p) {}
    
    SomeClass* operator->() {
        return ptr;
    }
};

プロキシクラス

class RealObject {
public:
    void performAction() { /* 操作 */ }
};

class Proxy {
private:
    RealObject obj;
public:
    RealObject* operator->() {
        return &obj;
    }
};

ライブラリのインターフェース

class LibraryInterface {
public:
    void libraryFunction1() { /* 操作libraryFunction1 */ }
    void libraryFunction2() { /* 操作libraryFunction2 */ }
};

class Library {
private:
    LibraryInterface obj;
public:
    LibraryInterface* operator->() {
        return &obj;
    }
};

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0