今天按照书上的程序输入进去可是怎么修改也无法运行,不知道哪里出错了,谁能帮一下,谢谢了
#include <iostream>
using namespace std;
const int DefaultSize = 10;
class Animal
{
public:
Animal(int);
Animal();
~Animal() {}
int GetWeight() const { return itsWeight; }
void Display() const { std::cout << itsWeight; }
private:
int itsWeight;
};
Animal::Animal ( int weight):
itsWeight(weight)
{}
Animal::Animal():
itsWeight(0)
{}
template <class T>
class Array
{
public:
Array(int itsSize = DefaultSize);
Array(const Array &rhs);
~Array() { delete [] pType; }
Array& operator=(const Array&);
T& operator[](int offSet) { return pType[offSet]; }
const T& operator[](int offSet) const
{return pType[offSet]; }
int GetSize() const { return itsSize; }
template <class T>
friend ostream& operator<< (ostream&, Array<T>&);
private:
T *pType;
int itsSize;
};
template <class T>
ostream& operator<< (ostream& output, Array<T>& theArray)
{
for(int i=0; i<theArray.itsSize; i++)
output << "[" << i << "]" << theArray[i] << endl;
return output;
}
template <class T>
Array<T>::Array(int size):
itsSize(size)
{
pType = new T[size];
for (int i=0; i<size; i++)
pType[i] =0;
}
template <class T>
Array<T>::Array(const Array &rhs)
{
itsSize = rhs.GetSize();
pType = new T[itsSize];
for (int i=0; i<itsSize; i++)
pType[i] = rhs[i];
}
template <class T>
Array<T>& Array<T>::operator=(const Array &rhs)
{
if (this == &rhs)
return *this;
delete [] pType;
itsSize = rhs.GetSize();
pType = new T[itsSize];
for (int i=0; i< itsSize; i++)
pType[i] = rhs[i];
return * this;
}
int main()
{
bool Stop = false;
int offset, value;
Array<int> theArray;
while (Stop == false)
{
cout << "Enter an offset (0-9) ";
cout << "and a value. (-1 to stop): ";
cin >> offset >> value;
if (offset<0)
break;
if (offset>9)
{
cout << "***Please use values between 0 and 9.***\n";
continue;
}
theArray[offset] = value;
}
cout << "\nHere's the entire array:\n";
cout << theArray << endl;
char response;
cin >> response;
return 0;
}
在108行处
就是cout << theArray << endl;这里编译器提示错误是
D:\C++\第三周\19.3.cpp(108) : error C2563: mismatch in formal parameter list
D:\C++\第三周\19.3.cpp(108) : error C2568: '<<' : unable to resolve function overload
could be 'class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &__cdecl std::endl(class std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> > &)'
d:\microsoft visual studio\vc98\include\ostream(377) : see declaration of 'endl'
or 'class std::basic_ostream<char,struct std::char_traits<char> > &__cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)'
d:\microsoft visual studio\vc98\include\ostream(372) : see declaration of 'endl'
or 'class std::basic_ostream<_E,_Tr> &__cdecl std::endl(class std::basic_ostream<_E,_Tr> &)'
d:\microsoft visual studio\vc98\include\ostream(367) : see declaration of 'endl'
执行 cl.exe 时出错.
这个问题解决不了下边的知识都有类似的地方...所以希望大家帮忙解决,非常感谢!!