VS2013&C++(MFC)&Kinect2 不允许使用返回抽象类的函数

Harry_12_3 2016-05-11 11:14:23
我在将Kinect1的一个算法移植到Kinect2上面的时候遇到的问题,网上没有搜到,求大神帮忙解决,在下感激不尽
这是原来K1的代码
NUI_SKELETON_FRAME standardization(NUI_SKELETON_FRAME skeletonFrame){
for (int i = 0; i < NUI_SKELETON_COUNT; i++){
for (int r = 0; r < 20; r++){
skeletonFrame.SkeletonData[i].SkeletonPositions[r] = bz(skeletonFrame.SkeletonData[i].SkeletonPositions[r], skeletonFrame.SkeletonData[i].SkeletonPositions[0]);
}
}
return skeletonFrame;
}

我改写后的K2代码
IBodyFrameReader standardization(IBodyFrameReader skeletonFrame){
for (int i = 0; i < BODY_COUNT; i++){
for (int r = 0; r < 25; r++){
skeletonFrame.SkeletonData[i].SkeletonPositions[r] = bz(skeletonFrame.SkeletonData[i].SkeletonPositions[r], skeletonFrame.SkeletonData[i].SkeletonPositions[0]);
}
}
return skeletonFrame;
}

这是程序报错的地方
...全文
666 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2016-05-12
  • 打赏
  • 举报
回复 1
你返回的是一个对象, 而这对象的类是纯虚的, 虽然内存上可以转换了, 但是没有数据本身就不符合语法规范. 在k1上正好有bug, 在k2上有了更严格的检查, 你就通不过了. 可以改成返回指针, 或者引用 NUI_SKELETON_FRAME standardization(NUI_SKELETON_FRAME skeletonFrame) 改成 NUI_SKELETON_FRAME &standardization(NUI_SKELETON_FRAME skeletonFrame) 或者 NUI_SKELETON_FRAME *standardization(NUI_SKELETON_FRAME skeletonFrame) //注意改成指针,ruturn语句需要使用&取地址. 后面的函数类似
Harry_12_3 2016-05-12
  • 打赏
  • 举报
回复
不太懂求指导
  • 打赏
  • 举报
回复
使用指针形式
沙漏99 2016-05-12
  • 打赏
  • 举报
回复
好大 磊磊大在在
Harry_12_3 2016-05-12
  • 打赏
  • 举报
回复
可是K2不认这个NUI_SKELETON_FRAM呀,按照你的写上去提示这个NUI_SKELETON_FRAME是未定义标识符

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧