首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

遇到C++类型有关问题了!希望大牛能解决

2012-04-11 
遇到C++类型问题了!希望大牛能解决!class fi{public :fi(){}virtual void ri(){}}class se : public fi

遇到C++类型问题了!希望大牛能解决!
class fi
{
public :
fi(){};
virtual void ri(){};
};
class se : public fi
{
public :
se(){};
char abc;
};
int main(void)
{
fi* f = new fi;

static_cast<se*>(f)->abc = 'a';

cout << static_cast<se*>(f)->abc << endl;

return 0;
}

谁能帮我解释一下!程序中的abc内存是怎么分配的?

[解决办法]
c++对象new操作一般在heap(堆)中为对象分配空间,abc应该在heap中。

你这样强制转换对象,abc的地址可能是非法指针,也可能会overwrite其他空间。

你不妨打印出地址来看看。
[解决办法]
你构造的是fi类,abc不是fi类的成员,没有未其分配内存,访问abc是越界访问。

热点排行