私はC++コードを持っています(私のものではないので、編集できません)。問題は、保護された関数とクラスの拡張にあります。
#include "ExtraClass.h"
...
MyClass::MyClass()
{
...
protected:
bool Func{}
ExtraClass m_Foo;
...
}
Pythonでm_FooメソッドとFunc()のような保護された関数にアクセスする必要があります
from MyClass import *
bar = MyClass()
bar.m_Foo.Run() //something like this
しかし、コンパイラエラーがあります:*エラー:'ExtraClass MyApp::m_Foo'は保護されています*
PS。私がパブリックで保護されているように変更した場合(試してみるためだけに)。* m_Foo *にアクセスできるのは、読み取り専用モードのみです。
class_<MyClass>("MyClass", init<>())
.def_readonly("m_Foo", &MyClass::m_Foo)
* def_readwrite *に変更すると、コンパイラエラーが発生しました。
/boost_1_52_0/boost/python/data_members.hpp:64:11:エラー:'<em>(((ExtraClass)c)+((sizetype)((const boost :: python :: detail :: member
<ExtraClass, MyClass
> *)this)-> boost :: python :: detail :: member<ExtraClass, MyClass
> :: m_which))= d'</ p>
助けてくれてありがとう!