首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ Primer 中文版(第三版),这个是异常吗

2012-03-24 
C++ Primer 中文版(第三版),这个是错误吗?如题,P41,2.5节泛型设计里面,我的疑问:ia、da、ca是一个类的实例化

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 类似
[解决办法]

探讨

引用:

那不是很清楚吗 ia等是Array,ix是索引


ia不是类的实例化吗?我的理解是,ia.ia[ix],这个才是数组啊,你的索引应该是对ia里面的成员变量也就是elemtype *ia起作用吧?

热点排行