【发布时间】:2013-08-14 09:50:52
【问题描述】:
代码:
#include<iostream.h>
class base
{
public:
int bval;
base(){ bval=0;}
};
class deri:public base
{
public:
int dval;
deri() { dval=1; }
};
void SomeFunc(base *arr,int size)
{
for(int i=0; i<size; i++,arr++)
cout<<arr->bval;
cout<<endl;
}
int main()
{
base BaseArr[5];
SomeFunc(BaseArr,5);
deri DeriArr[5];
SomeFunc(DeriArr,5);
return 0;
}
输出:
00000
01010
我不明白为什么输出的第二行是01010。这个程序只是为了学习目的,用Turbo C++实现的。
【问题讨论】:
-
<iostream.h>不是标准标头。我不认为 Turbo 有合适的<iostream>,但话又说回来,应该不惜一切代价避免使用 Turbo。 -
@chris 在我们的大学里,他们只遵循 Turbo C。这就是原因。
-
@HimanshuAggarwal 但是你可以免费下载更好的编译器。甚至微软的免费编译器也比这更标准。
标签: c++ class object pointers inheritance