MATLAB® автоматически переименовывает классы, функции представителя, не являющиеся членом функции и перечисления с именами C++, которые недействительны в MATLAB, используя matlab.lang.makeValidName
функция. Перечислители и представители данных с недопустимыми именами C++ не переименовываются автоматически.
Издатель может переименовать класс, перечисление или функцию, не являющуюся членом, в файл определения библиотеки. Переименование пространств имен C++, внешнего (заключающего) класса для вложенных классов, функций-членов, представителей данных, перечислителей или пакета MATLAB не поддерживается.
Для примера MATLAB преобразует имя класса _myclass
в библиотечных mylib
на x_myclass
. Чтобы использовать класс в MATLAB, введите:
clib.mylib.x_myclass
Переименование x_myclass
, в файле определения библиотеки, измените имя x_myclass
на myClass
, затем создайте интерфейс. Когда вы используете класс в MATLAB, введите:
clib.mylib.myClass
Возможно, вам потребуется доступ к свойству в 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, где 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
классов псевдоним с таким же именем, как и метод в классе.