Для создания интерфейса класса C++ к коду модели установите параметр конфигурации модели Code interface packaging в значение C++ class. Сгенерированный интерфейс инкапсулирует требуемые данные модели в атрибуты класса C++ и функции точки входа модели в методы класса C++. Преимущества инкапсуляции класса C++ включают в себя:
Усиление контроля за доступом к данным модели
Возможность создания нескольких экземпляров классов модели
Упрощение интеграции модельного кода в среды программирования C++
Инкапсуляция класса C++ также работает для построений невиртуальных подсистем правой кнопкой мыши. (Сведения о применимых требованиях см. в разделе Создание интерфейса класса C++ к коду невиртуальной подсистемы.)
Чтобы создать инкапсулированный код класса C++ из модели:
Задайте для параметра конфигурации модели Язык значение C++. Этот выбор также включает упаковку кода класса C++ для модели.
Убедитесь, что для параметра конфигурации модели Code interface packaging установлено значение C++ class.
Проверьте настройку диагностики ошибок кода нескольких экземпляров. Оставить значение параметра по умолчанию Error если не требуется изменять уровень серьезности для диагностики, отображаемой при нарушении моделью требований к созданию многоэкземплярного кода.

Создайте код для модели.
Проверьте код класса модели C++ в созданных файлах и model.h. Например, следующий фрагмент кода из файла H, созданного для примерной модели model.cpprtwdemo_secondOrderSystem показывает объявление класса C++ для модели.
/* Class declaration for model rtwdemo_secondOrderSystem */
class rtwdemo_secondOrderSystemModelClass {
/* public data and function members */
public:
/* External outputs */
ExtY_rtwdemo_secondOrderSyste_T rtwdemo_secondOrderSystem_Y;
/* Model entry point functions */
/* model initialize function */
void initialize();
/* model step function */
void step();
/* model terminate function */
void terminate();
/* Constructor */
rtwdemo_secondOrderSystemModelClass();
/* Destructor */
~rtwdemo_secondOrderSystemModelClass();
/* Real-Time Model get method */
RT_MODEL_rtwdemo_secondOrderS_T * getRTM();
...
};Дополнительные сведения о создании и вызове функций точки входа модели см. в разделе Настройка генерации кода C для функций точки входа модели.
Примечание
Если у вас есть лицензия Embedded Coder ® и вы выбрали целевой системный файл на основе ERT для вашей модели, используйте дополнительные параметры панели «Создание кода» > «Интерфейс» для настройки созданного интерфейса класса C++.
Можно создать интерфейсы класса C++ для построений неэлектронных подсистем правой кнопкой мыши, если выполняются следующие требования:
Модель настроена для C++ языка и C++ class упаковка интерфейса кода.
Подсистема может преобразовываться в блок модели с помощью функции Simulink.SubSystem.convertToModelReference. Требования к преобразованию ссылочных моделей см. на справочной странице Simulink ®Simulink.SubSystem.convertToModelReference.
Конфигурирование интерфейсов класса C++ для подсистемы, удовлетворяющей требованиям:
Откройте содержащую модель и выберите блок подсистемы.
Щелкните правой кнопкой мыши подсистему и выберите C/C + + Code > Build This Subsystem.
По завершении построения подсистемы проверьте интерфейсы класса C++ в созданных файлах и отчет о создании кода HTML. Дополнительные сведения о создании и вызове методов точек входа модели см. в разделе Настройка генерации кода C для функций точек входа модели.
При наличии лицензии Embedded Coder и выборе целевого файла системы на основе ERT для модели можно использовать команду MATLAB ®RTW.configSubsystemBuild для настройки сгенерированного интерфейса класса C++ на код подсистемы.
Среди интерфейсов обмена данными, доступных на панели Interface диалогового окна Configuration Parameters, поддерживается только интерфейс C API для C++ class формирование кода. При выборе внешнего режима или интерфейса ASAP2 создание кода завершается ошибкой проверки.
Если значение корневого входа модели соединяется с блоком преобразования Simscape™, необходимо вставить блок преобразования сигнала Simulink между корневым входом и блоком преобразования Simscape. В диалоговом окне параметров блока преобразования сигналов Simulink выберите Исключить этот блок из оптимизации «Сокращение блоков».
Нельзя использовать интерфейс класса C++ в случаях, когда ссылочная модель не может иметь комбинированную функцию вывода/обновления. Случаи включают модель, которая
Имеет непрерывное время выборки
Сохранение состояний