读书人

//完善程序。补齐代码使程序能正常运

发布时间: 2012-05-14 15:24:34 作者: rapoo

//完善程序。补齐代码,使程序能正常运行
#include <iostream>
using namespace std;
template <typename T>
class Array{
template<typename T>
friend Array<T>* combine(Array<T>& a1, Array<T>& a2);//友函数,合并a1,a2至新建的对象并返回该对象。
template<typename T>
friend ostream & operator<<(ostream & os,const Array<T> & ary);
public:
Array(int sz): size(sz);//构造函数
Array(const Array& a);//拷贝构造函数
~Array();//析构函数
T& operator[](int i);//返回第i号位置元素
int Length();返回数组中元素个数
private:
T * aryPtr;//指向堆空间的指针
int size;//数组大小
};
//在此之后添加函数定义

int main() {
Array<char> alpha1(26);
for (int i = 0 ; i < alpha1.Length() ; i++)
alpha1[i] = 'A' + i;
cout<<alpha1<<endl;
Array<char> alpha2(26);
for (int i = 0 ; i < alpha2.Length() ; i++)
alpha2[i] = 'a' + i;
cout<<alpha2<<endl;
Array<char>* alpha3 = combine(alpha1, alpha2);
cout<<alpha3<<endl;
delete alpha3;
}


[解决办法]
Array(int sz): size(sz);//构造函数
同学。你这边构造函数这样写会导致一个静态连接库的编译错误问题 ;编译器内部错误
你换成Array(int sz){size=sz;}//构造函数
就没有错误了、

[解决办法]
你重载输入输出流之后,endl并没有进行重载,所以换种方式替换一下;还有i的定义范围有些问题、

读书人网 >C++

热点推荐