(iphone)如何访问c++;班 我有一个CGRCt变量的C++类,当访问它时,我得到了StEnt错误。 class Parent { //with some virtual functions/dtors }; class Child { public: void SetRect(CGRect rect) { mRect = rect; } CGRect GetRect() { return mRect; } int GetIndex() { return mIndex; } private: CGRect mRect; int mIndex; };
我在做什么(iphone)如何访问c++;班 我有一个CGRCt变量的C++类,当访问它时,我得到了StEnt错误。 class Parent { //with some virtual functions/dtors }; class Child { public: void SetRect(CGRect rect) { mRect = rect; } CGRect GetRect() { return mRect; } int GetIndex() { return mIndex; } private: CGRect mRect; int mIndex; };,iphone,c++,objective-c,Iphone,C++,Objective C,我在做什么 CGRect rect = childPtr->GetRect(); 从对象c代码和它的故障中分离。 我在调用之前打印了*childPtr,rect看起来与预期的数据值一致 int index = childPtr->GetIndex(); 来自同一个对象c代码(*.mm),但效果很好 你知道我为什么会犯错误吗? 多谢各位 编辑- 这与虚拟函数有关 (gdb)p单件->GetRect() 程序接收到信号EXC_访问错误,无法访问内存。 原因:地址0x00
CGRect rect = childPtr->GetRect();
从对象c代码和它的故障中分离。我在调用之前打印了*childPtr,rect看起来与预期的数据值一致
int index = childPtr->GetIndex();
来自同一个对象c代码(*.mm),但效果很好
你知道我为什么会犯错误吗?多谢各位
- 编辑-
不知何故,函数没有正确编译?在目标C中获得rect变量 你这样做吗 int indexX=rect.origin.x int indexY=rect.origin.y
等等看看你给我们的代码,它似乎应该能工作。子项应该从父项派生吗?GetRect()是父函数中的虚拟函数吗?如果是的话,它的实现是什么?childPtr是孩子还是家长?我认为我们需要更多的上下文。有child1,child2和yes需要从父母那里派生出来。GetRect()在父级是纯虚拟的。childPtr是父级*的类型。让我感到困惑的是,据我所知,CGRect只是c结构。我还尝试了将ptr强制转换为Child*在callI发现它与CGRect无关之前,所有虚拟函数调用都会导致segfaults。发现问题了。ptr在呼叫前已被删除。。我真傻。谢谢你!