Найти - Пользователи
Полная версия: Boost python и вложеные объекты
Начало » Python для новичков » Boost python и вложеные объекты
1
zheka
Подскажите пожалуйста, как можно реализовать класс имеющий вложенные объекты. Для отображения в python использую Boost:Python. Возможно вопрос тривиальный, я просто не силён в этих областях, и задался реализовать нехитрый API который предусматривает многоуровневую вложенность объектов. Конструкция вроде:
class SubClass {
public:
int getVal() {
return 50;
}
};

class CppClass {
public:
int getNum() {
return 10;
}

SubClass ;
};
меня не устраивает поскольку накладывает ограничения на инициализацию, и кроме того в CppClass нужно хранить массивы объектов.
Андрей Светлов
Не понятно, что вы подразумеваете под “вложенными объектами”. Можете пояснить?
zheka
в посте опечатался, подразумевалось
class CppClass {
public:
int getNum() {
return 10;
}

SubClass SubObject;
};
Мне нужно реализовать агрегирование, чтобы из питона можно было обращаться
newobject["SubObject1"].getVal()
Проблема не в том как перегрузить оператор а что возвращать из функции перегрузки . Если я возвращаю объект, то он представляет из себя новый экземпляр класса SubClass, если ссылку то в интерпретаторе возникает ошибка из-за несоответствия типа. Подозреваю что нужно использовать ptr() но не смог разобраться как именно.
zheka
Заработало, спасибо ! :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB