C++ Primer 中文版(第三版),这个是错误吗?
如题,P41,2.5节泛型设计里面,
我的疑问:
ia、da、ca是一个类的实例化,ia[ix]、da[ix]、ca[ix]是什么东西?
以下是书上的源代码
#include <iostream>
#include "Array.h"
int main()
{
const int array_size = 4;
// elemType 变成了int
Array<int> ia(array_size);
// elemType 变成了double
Array<double> da(array_size);
// elemType 变成了char
Array<char> ca(array_size);
int ix;
for ( ix = 0; ix < array_size; ++ix ) {
ia[ix] = ix;
da[ix] = ix * 1.75;
ca[ix] = ix + 'a';
}
for ( ix = 0; ix < array_size; ++ix )
cout << "[ " << ix << " ] ia: " << ia[ix]
<< "\tca: " << ca[ix]
<< "\tda: " << da[ix] << endl;
return 0;
}
Array.h文件:
template < class elemType >
class Array {
public:
// 把元素类型参数化
explicit Array( int size = DefaultArraySize );
Array( elemType *array, int array_size );
Array( const Array &rhs );
virtual ~Array() { delete [] ia; }
bool operator==( const Array& ) const;
bool operator!=( const Array& ) const;
Array& operator=( const Array& );
int size() const { return _size; }
virtual elemType& operator[](int index){ return ia[index]; }
virtual void sort();
virtual elemType min() const;
virtual elemType max() const;
virtual int find( const elemType &value ) const;
protected:
static const int DefaultArraySize = 12;
int _size;
elemType *ia;
};
[解决办法]
那不是很清楚吗 ia等是Array,ix是索引
[解决办法]
ia[ix]、da[ix]、ca[ix]是他们的第ix个元素
[解决办法]
这些都是数组啊,当然可以用下标来访问
[解决办法]
virtual elemType& operator[](int index){ return ia[index]; }
Array<int> ia(array_size);
ia[ix]
elemType == int
virtual int& operator[](int index){ return ia[index]; }
返回数组下标为index的引用 int&
da ca 类似
[解决办法]