我有以下星座:C++成员数组未初始化
class base {...};
class derived : public base
{
public:
unsigned int* a;
derived(size_t num = 1) : a(0), _b(0)
{
a = new unsigned int[num];
_b = new unsigned char[num];
}
private:
unsigned char* _b;
}
都是通过这样做精:
derived* instance = new derived();
但这样做:
base* instance = new derived();
_b保持为0x0当我尝试使用_b时会出现错误。
这里发生了什么?
更新:
这个问题是由Windows/Linux的跨平台问题引起的 - 值充满了不正确的指针。
发布测试用例或者它没有发生。 – juanchopanza
这很奇怪,很难相信。你可以发布[SSCCE](http://sscce.org/)吗?理想情况下,我们可以粘贴到例如[ideone](http://ideone.com/)并亲自查看。 – Angew
基类是否有名称为_b的数据成员?你应该显示基类的定义。 –