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 исказите имя с тем же именем как метод в классе.