次のプログラムを検討してください。出力の混乱
#include<iostream>
using namespace std;
class base
{
public:
int _bval;
base():_bval(0){}
};
class derived:public base
{
public:
int _dval;
derived():base(),_dval(1){}
};
int main()
{
derived d[5];
base *p;
p=d;
for(int i=0;i<5;++i,++p)
cout<<p->_bval;
}
上記のプログラムの出力は、Iが_bvalの値は、ベースクラスのコンストラクタによって0(たび)に初期化されたため、出力が00000だろうと思っ01010.
あります。
しかし、なぜ出力が00000と異なるのですか?
私は何が欠けていますか?
正確であることに感謝します。 –