错误 请帮忙看一下

hawklixingyi 2006-12-16 11:09:08
#ifndef ARRAY_H
#define ARRAY_H

#include <iostream>


template <class elemType> class Array;
template <class elemType> ostream&
operator<<( ostream &, Array<elemType> & );

template <class elemType>
class Array {
public:
explicit Array( int sz = DefaultArraySize )
{ init( 0, sz ); }

Array( const elemType *ar, int sz )
{ init( ar, sz ); }

Array( const Array &iA )
{ init( iA._ia, iA._size ); }

virtual ~Array() { delete[] _ia; }

Array& operator=( const Array & );
int size() const { return _size; }

virtual elemType& operator[]( int ix ) { return _ia[ix]; }
virtual elemType operator[]( int ix ) const { return _ia[ix]; }

elemType at( int ix ) const { return _ia[ ix ]; }

virtual ostream &print( ostream& = cout ) const;
virtual void grow();
virtual void sort( int,int );
virtual int find( const elemType& );

virtual elemType min();
virtual elemType max();

protected:
void init( const elemType*, int );
void swap( int, int );

//static const int DefaultArraySize = 12;
static const int DefaultArraySize;

int _size;
elemType *_ia;
};

#endif
#ifndef ARRAY_C
#define ARRAY_C

#include <assert.h>
#include "Array.h"

template <class elemType>
const int Array<elemType>::DefaultArraySize = 12;

template <class elemType>
void Array<elemType>::init( const elemType *array, int sz )
{
if ( ! array ) { _size = 0; _ia = 0; }
if ( sz < 1 ) sz = 1;

_size = sz;
_ia = new elemType[ _size ];

if ( ! array ) return;

for ( int ix = 0; ix < _size; ++ix )
_ia[ ix ] = array[ ix ];
}

template <class elemType> Array<elemType>&
Array<elemType>::operator=( const Array<elemType> &iA )
{
if ( this == &iA )
return *this;

delete[] _ia;
init( iA._ia, iA._size );
return *this;
}

template <class elemType> ostream&
operator<<( ostream &os, Array<elemType> &ar )
{
return ar.print( os );
}

template <class elemType>
ostream& Array<elemType>::print( ostream &os ) const
{
const int lineLength = 12;
os << "( " << _size << " )< ";

for ( int ix = 0; ix < _size; ++ix )
{
if ( ix % lineLength == 0 && ix )
os << "\n\t";

os << _ia[ ix ];
// don't generate comma for last item on line
// nor for the last element of the array
if ( ix % lineLength != lineLength-1 && ix != _size-1 )
os << ", ";
}

os << " >\n";
return os;
}

template <class elemType>
void Array<elemType>::grow()
{
elemType *oldia = _ia;
int oldSize = _size;

_size = oldSize + oldSize/2 + 1;
_ia = new elemType[_size];

int ix;
for ( ix = 0; ix < oldSize; ++ix)
_ia[ix] = oldia[ix];

for ( ; ix < _size; ++ix )
_ia[ix] = elemType();

delete[] oldia;
}

template <class elemType>
elemType Array<elemType>::min( )
{
assert( _ia != 0 );
elemType min_val = _ia[0];

for ( int ix = 1; ix < _size; ++ix )
if ( _ia[ix] < min_val )
min_val = _ia[ix];

return min_val;
}

template <class elemType>
elemType Array<elemType>::max()
{
assert( _ia != 0 );
elemType max_val = _ia[0];

for ( int ix = 1; ix < _size; ++ix )
if ( max_val < _ia[ix] )
max_val = _ia[ix];

return max_val;
}

template <class elemType>
int Array<elemType>::find( const elemType &val )
{
for ( int ix = 0; ix < _size; ++ix )
if ( val == _ia[ix] )
return ix;

return -1;
}

template <class elemType>
void Array<elemType>::swap( int i, int j )
{
elemType tmp = _ia[i];
_ia[i] = _ia[j];
_ia[j] = tmp;
}

template <class elemType>
void Array<elemType>::sort( int low, int high )
{
if ( low >= high ) return;
int lo = low;
int hi = high + 1;
elemType elem = _ia[low];

for ( ;; ) {
while ( _ia[++lo] < elem ) ;
while ( _ia[--hi] > elem ) ;
if ( lo < hi )
swap( lo,hi );
else break;
}

swap( low, hi );
sort( low, hi-1 );
sort( hi+1, high );
}

#endif

...全文
168 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rongcanf 2006-12-17
  • 打赏
  • 举报
回复
貌似是《C++ PRIMER》上的,呵呵
看问题好像是语法上的错误吧
hawklixingyi 2006-12-16
  • 打赏
  • 举报
回复
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(39) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(40) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(40) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(18) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(20) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdlib(21) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdlib(21) : fatal error C1003: error count exceeds 100; stopping compilation
Results Build log was saved at "file://c:\Documents and Settings\lixingyi\My Documents\Visual Studio 2005\Projects\Chap18\Chap18\Debug\BuildLog.htm"
Chap18 - 102 error(s), 0 warning(s)
hawklixingyi 2006-12-16
  • 打赏
  • 举报
回复
Compiling...
Array.C
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(25) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(26) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(27) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(28) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(29) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(30) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(31) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(32) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(33) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(33) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(33) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(33) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(34) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(34) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(34) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(34) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(35) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(36) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(37) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2143: syntax error : missing '{' before ':'
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2059: syntax error : ':'
d:\microsoft visual studio 8\vc\include\cstdio(38) : error C2143: syntax error : missing '{' before ':'

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧