MATLAB® автоматически переименовывает классы, функции членства, функции лица, не являющегося членом какой-либо организации, и перечисления с именами C++, которые недопустимы в MATLAB с помощью matlab.lang.makeValidName
функция. Enumerants и элементы данных с именами C++, которые недопустимы, автоматически не переименованы.
Издатель может переименовать класс, перечисление, или функция лица, не являющегося членом какой-либо организации, в файле определения библиотеки. Переименовывая пространства имен C++, внешнее (включение) класс для вложенных классов, функции членства, элементы данных, enumerants, или пакет MATLAB не поддерживаются.
Например, MATLAB преобразует имя класса _myclass
в библиотеке mylib
к x_myclass
. Чтобы использовать класс в MATLAB, введите:
clib.mylib.x_myclass
Переименовать x_myclass
, в файле определения библиотеки поменяйте имя x_myclass
к myClass
, затем создайте интерфейс. Когда вы будете использовать класс в MATLAB, введите:
clib.mylib.myClass
Вы можете должны быть получить доступ к свойству в MATLAB, но имя свойства не может быть допустимым именем MATLAB. Например, имя может начаться с подчеркивания. Чтобы вывести это имя во время выполнения, используйте этот синтаксис MATLAB, где propertyName
строковый скаляр или вектор символов, который, когда оценено, возвращает экземпляр свойства.
clib.libName.className.(propertyName)
Например, предположите, что у вас есть интерфейсный clib.demo.MyClass
с этим свойством:
class MyClass
{
public:
int _mean;
};
Присваивать свойство _mean
к переменной введите:
x = clib.demo.MyClass;
xmean = x.('_mean')
Этот синтаксис допустим для имен меньше, чем максимальная длина идентификатора namelengthmax
.
Вы можете должны быть создать перечисляемую стоимость в MATLAB, но имя того значения не может быть допустимым именем MATLAB. Например, имя enumerant может начаться с подчеркивания. Чтобы получить значение на это имя во время выполнения, используйте этот синтаксис MATLAB, где enumMember
строковый скаляр или вектор символов, который, когда оценено, возвращает экземпляр перечисления.
clib.libName.enumName.(enumMember)
Например, предположите, что у вас есть интерфейсный clib.enums.keywords
с этими свойствами:
EnumDefinition with properties: Description: "clib.enums.keywords Representation of C++ enumeration" DefiningLibrary: [1×1 clibgen.LibraryDefinition] CPPName: "keywords" MATLABType: "int32" Valid: 1 MATLABName: "clib.enums.keywords" Entries: ["_for" "_while" "_class" "_enums" "_template" "_typename"]
Присваивать запись _class
к переменной введите:
var = clib.enums.keywords.('_class');
Этот синтаксис допустим для имен меньше, чем максимальная длина идентификатора namelengthmax
.
typedef
Псевдонимы, не поддержанныеMATLAB не поддерживает класс typedef
исказите имя с тем же именем как метод в классе.