我有以下星座: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的數據成員?你應該顯示基類的定義。 –