использование Proxy Pattern реализации перегрузки оператора по типу возвращаемого значения?

От ответ, @James Kanze показывает реализацию перегрузки операторов по типу возвращаемого значения:

class Proxy
{
My const* myOwner;
public:
Proxy( My const* owner ) : myOwner( owner ) {}
operator int() const
{
return myOwner->getInt();
}
operator char() const
{
return myOwner->getChar();
}
};

Затем я реализую свой без прокси:

using namespace std;
#include <iostream>
#include <string>
const class Czxyl
{
private:
int a = 1;
char b = 'c';
float c = 1.1;
public:
Czxyl() = default;
constexpr Czxyl(int a, char b, float c) : a{ a }, b{ b }, c{ c } {}
constexpr operator int() const { return a; }
constexpr operator char() const { return b; }
constexpr operator float() const { return c; }
Czxyl get() const { return *this; }
//Czxyl operator() () const { return *this; }
} czxyl;

int main()
{
int a = czxyl.get();
char b = czxyl.get();
float c = czxyl.get();
std::cout << a << "\n" << b << "\n" << c << "\n";
}

Я не могу понять, почему использовать прокси?

Я знаю, что Proxy — это шаблон проектирования, но до сих пор не могу придумать, в каком случае я должен использовать такой шаблон проектирования.

Кто-нибудь может доказать, что Прокси является обязательным здесь, используя конкретные примеры?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]