你的c++回调方法可能需要创建持续的c++对象,对象方法退出后继续存在。例如,一个回调方法可能需要访问对象中创建前一个调用。或一个回调方法可能需要访问对象由另一个回调方法。在你创建持久的c++对象功能:
创建一个指针工作向量指针之间的持久对象方法调用:
静态孔隙mdlInitializeSizes (SimStruct * S) {…ssSetNumPWork (S, 1);/ / / /储备元素指针向量存储一个c++对象……}
存储指针指向每个对象指针的你想要持续工作向量:
静态孔隙mdlStart (SimStruct * S) {ssGetPWork (S) [0] = (void *)新柜台;/ /存储新的c++对象}/ /指针向量
检索任何后续的指针访问对象方法调用:
静态孔隙mdlOutputs (SimStruct *年代,int_T tid){计数器* c =(计数器*)ssGetPWork (S) [0];/ /检索c++对象从real_T * y = ssGetOutputPortRealSignal (S, 0);/ /指针向量和y [0] = c - >输出();/ /使用}/ /对象的成员函数
仿真终止时消灭的对象:
静态孔隙mdlTerminate (SimStruct * S){计数器* c =(计数器*)ssGetPWork (S) [0];/ /检索和摧毁c++删除C;/ /终止}/ /函数对象