Как называется это в Design Pattern? - PullRequest
1 голос
/ 20 сентября 2011
class MyType
{
public:
    A ( unsigned _a ) : a (_a-1)
    {

    }
    operator unsigned& () 
    {
        return a;
    }
    operator const unsigned () const
    {
        return a;
    }
    unsigned a; 
}; 

В приведенном выше примере я создал класс MyType, который состоит только из одного целого числа без знака.

есть ли имя шаблона дизайна для MyType? Это целое число без знака, и его можно использовать как единое целое. Но только под другим именем

Ответы [ 5 ]

1 голос
/ 20 сентября 2011

Не знаю, что такое имя шаблона проектирования, но его можно использовать.

Это может быть полезно, если у вас есть набор классов, которые все реализуют те же функции-члены, и вы хотитеотноситься ко всем одинаково.Некоторые из этих классов содержат простые типы, такие как int и unsigned, в то время как другие содержат более сложные типы классов / структур.

Цель состоит в том, чтобы позволить "упакованным" примитивным типам действовать как более сложные "реальные"Типы классов.Это особенно полезно, когда все эти классы могут использоваться в качестве параметров шаблона в группе шаблонных классов или функций (т. Е. Когда все классы наследуют один и тот же базовый интерфейсный класс (классы)).

1 голос
/ 20 сентября 2011

Брюс Экель делает нечто подобное в Мышление в C ++ на странице 354, параграф «Конструкторы» для встроенных типов.Такой дизайн может быть полезен (как утверждает Брюс) для строгого контроля инициализации инкапсулированного типа.Однако я не знаю ни одного названия для него.

0 голосов
/ 21 сентября 2011

Это не шаблон проектирования вообще. Это «идиома», которую можно использовать только в C ++. Шаблоны проектирования обычно не зависят от языка и могут быть реализованы на любом языке, который поддерживает базовые принципы, такие как делегирование / наследование.

0 голосов
/ 20 сентября 2011

Это вообще не шаблон проектирования, поскольку шаблон проектирования описывает взаимодействие между несколькими классами, а у вас есть только один.

0 голосов
/ 20 сентября 2011

Это не известный шаблон проектирования. Какой смысл этого кода? Это тип, который действует как целое число без знака, так почему бы просто не использовать целое число без знака?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...