Java-класс класса в cpp - PullRequest
       4

Java-класс класса в cpp

0 голосов
/ 18 мая 2011

Я хочу написать программу, которая поддерживает несколько типов команд.
Чтобы сделать его универсальным и простым для расширения для последующих новых команд, я хочу написать класс для каждой команды (с собственной обработкой) и вызвать базовый класс 'command' с помощью функции-обработчика.
Я знаю, что в Java есть класс класса, который может помочь с такой вещью - решить «по потоку» тип класса, с которым он работает.
У cpp есть подобный механизм? Если да, что это такое и как мне его использовать?
Если нет, что я могу сделать, чтобы его было легко расширять?

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 18 мая 2011

Вы можете реализовать класс Command с помощью чисто виртуального метода.

http://www.exforsys.com/tutorials/c-plus-plus/c-pure-virtual-function-and-base-class.html

1 голос
/ 18 мая 2011

Хотя вы можете использовать класс Class для определения потока в Java, лучше использовать полиморфизм - он делает класс открытым для расширения без необходимости изменения («O» в SOLID).

То же самое верно для C ++.Вы могли бы использовать RTTI, но виртуальные методы позволяют расширять класс с помощью команд, не изменяя его.

Из «Шаблонов проектирования» Гаммы и др.:

Ключ кэтот шаблон является абстрактным классом Command, который объявляет интерфейс для выполнения операций.В простейшем виде этот интерфейс содержит абстрактную операцию Execute.

0 голосов
/ 18 мая 2011

Вы можете использовать RTTI , но я предлагаю вам найти другой способ сделать это.

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