C++代码出错 请求改正

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:01:56
#include<iostream>
#include<fstream>
using namespace std;

template<class T>
class List
{
public:
ifstream infile;
ofstream outfile;
List()
{
Data=new T[10];
int x=0;
int n=0;
int a=0;
int b=0;
T tempt=0;
}
void GetData();
void ChangeList(int x,int n);
void PrintList1();
void PrintList2();
};

void List::ChangeList(int x,int n)
{
infile<<x<<n;
infile<<Data;
int a=x-1;
int b=x+n-2;
while(i==0,i<=n/2-1,i++)
{
a=a+i;
b=b-i;
tempt=Data[a];
Data[a]=Data[b];
Data[b]=tempt;
}

}
void List::PrintList1()
{
outfile>>"Number:200719100106">>endl;
outfile>>"Name:龚蔚文">>endl;
outfile>>"Class:1">>endl;
outfile>>"Test

成员模板的定义要注意2点,定义类模板的成员还是也是模板,所以前面要加
template<class T>, 接着,在使用的时候还要 完整的类型限定符,即 List<T>::

所以,模板的错误这么改就行了:(以任意一个成员函数举例)

template<class T>
void List<T>::PrintList2()
{
outfile>>"Answer:">>Data>>endl;
}

这个才是正确的在类定义外面定义成员函数的方式。

接着,你main里面的没声明就调用的infile , outfile我就不说了,只说模板的

List.PrintList1(); 不是一个正确的调用,首先你没有区分类和对象; 接着模板使用的时候要有模板参数,也就是说应该是下面的形式:
List<int> list; //暂时以基本类型int来实例化模板
list.PrintList1();

老实说,感觉你c++基本功都没打好, 先熟悉下c++的基本概念吧。 模板是c++的重中之重,稍微一错,编译错误一大堆让你郁闷的,基础打牢了才能行。

摸板现在不支持实现和原型分开, 所以你只能把他们放在同一个文件中, 比如:

template <class T>
void fun();

template <class T>
void fun(){...}

或者直接

template <class T>
void fun(){...}

你的问题完全没必要纠正,最基本的语法都有问题。你还是再看看书吧。先从最基本的语法开始。

while(x!='\0')
{
List.ChangeList(x,n);
Lis