一个C++程序的template的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:40:30
这个源代码在这
http://hi.baidu.com/hanyuejun2006/blog/item/5b4c9cef5f6e03edcf1b3e6c.html

一共有三个文件
大家帮我看看
我的编译器是vc 6.0
报错是:
GradeBookManager.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\test\GradeBookManager.cpp(77) : error C2065: 'myGrades' : undeclared identifier
D:\Program Files\Microsoft Visual Studio\MyProjects\test\GradeBookManager.cpp(57) : see reference to function template instantiation 'void __cdecl processGrades(class GradeBook<int> &)' being compiled
D:\Program Files\Microsoft Visual Studio\MyProjects\test\GradeBookManager.cpp(77) : error C2228: left of '.getClassSize' must have class/struct/union type
D:\Program Files\Microsoft Visual Studio\MyProjects\test\GradeBook

VC的错误提示太不友好了,最后用了GCC的编译器,一下子看出毛病了:
template<class T>void GradeBook<T>::displayStatistics(){
cout<<"\n Class average grade: "<<getAverage()<<endl;
cout<<"Class minimum grade :"<<getMinimun()//这里Minimum单词拼错了
<<"\nClass maximum grade :"<<getMaximum()<<endl;
}
把错误的单词改正后程序编译通过.最后你的程序没有析构函数,是个缺陷

myGrades未定义,你需要检查是不是所有需要的头文件都已经Include进来了.