#include <iostream>
using namespace std;
class Base
{
public:
operator int() const
{
return i1;
}
protected:
private:
int i1;
};
class Derived:public Base
{
public:
operator int() const
{
return i2;
}
protected:
private:
int i2;
};
void printBSTArray(ostream &s,const Base array[],int numElements)
{
for (int i=0;i<numElements;++i)
{
s<<array[i];
}
}
int main()
{
cout<<sizeof(Base)<<":"<<sizeof(Derived)<<endl;//显示sizeof(Base):4字节。sizeof(Derived):8字节
Base BaseArray[10];
printBSTArray(cout,BaseArray,10);//it's OK
Base DerivedArray[10];
printBSTArray(cout,DerivedArray,10);//it's error,尽管编译器不报错。
}