Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2010 16:25:03

zheka
От:
Зарегистрирован: 2010-10-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost python и вложеные объекты

Подскажите пожалуйста, как можно реализовать класс имеющий вложенные объекты. Для отображения в python использую Boost:Python. Возможно вопрос тривиальный, я просто не силён в этих областях, и задался реализовать нехитрый API который предусматривает многоуровневую вложенность объектов. Конструкция вроде:

class SubClass {
public:
int getVal() {
return 50;
}
};

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

SubClass ;
};
меня не устраивает поскольку накладывает ограничения на инициализацию, и кроме того в CppClass нужно хранить массивы объектов.



Офлайн

#2 Окт. 2, 2010 17:08:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Boost python и вложеные объекты

Не понятно, что вы подразумеваете под “вложенными объектами”. Можете пояснить?



Офлайн

#3 Окт. 2, 2010 19:23:06

zheka
От:
Зарегистрирован: 2010-10-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost python и вложеные объекты

в посте опечатался, подразумевалось

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

SubClass SubObject;
};
Мне нужно реализовать агрегирование, чтобы из питона можно было обращаться
newobject["SubObject1"].getVal()
Проблема не в том как перегрузить оператор а что возвращать из функции перегрузки . Если я возвращаю объект, то он представляет из себя новый экземпляр класса SubClass, если ссылку то в интерпретаторе возникает ошибка из-за несоответствия типа. Подозреваю что нужно использовать ptr() но не смог разобраться как именно.



Отредактировано (Окт. 2, 2010 19:23:25)

Офлайн

#4 Окт. 2, 2010 20:18:08

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Офлайн

#5 Окт. 2, 2010 20:46:25

zheka
От:
Зарегистрирован: 2010-10-02
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Boost python и вложеные объекты

Заработало, спасибо ! :)



Отредактировано (Окт. 2, 2010 21:11:05)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version