早些时候我向社区询问了这个程序,但我遇到了最后一个问题,在互联网上的快速搜索表明这是一个常见的问题。
下面是我的代码,后面是我的构建输出
分级机.cpp
#include <iostream>
#define MAXSIZE 100
#include "Grader.h"
Grader::Grader( ){
my_Values [MAXSIZE] = 0;
my_ValuesSeenSoFar = 0;
}
void Grader::addScore( int score ){
if( my_ValuesSeenSoFar < MAXSIZE)
my_Values[my_ValuesSeenSoFar++] = score;
}
void Grader::addScores( int scores[], int size ){
for(int i=0; (i < size) && (my_ValuesSeenSoFar < MAXSIZE) ; i++)
my_Values[my_ValuesSeenSoFar++] = scores[i];
}
void Grader::clear(){
for(int i=0; i < MAXSIZE ; i++)
my_Values[i] = 0;
}
int Grader::findBiggest() const{
int max = my_Values[0];
for(int i=1; i < my_ValuesSeenSoFar ; i++)
{
if( my_Values[i] > max)
max = my_Values[i];
}
return max;
}
int Grader::findSmallest( ) const{
int min = my_Values[0];
for(int i=1; i < my_ValuesSeenSoFar ; i++)
{
if( my_Values[i] < min )
min = my_Values[i];
}
return min;
}
驱动程序.cpp
#include <iostream>
#include "Grader.h"
using namespace std;
int main( )
{
Grader g;
double d[5]= {99,70,85,93,84};
double e[4]= {100,81,60,91};
g.addScore( 75 );
g.addScore( 82);
g.addScores( d, 5 );
cout << "Best Score = " << g.findBiggest( ) << endl;
/// should give value 99
cout << "Worst Score = " << g.findSmallest( ) << endl;
/// should give value 70
g.clear( );
g.addScore( 50 );
g.addScore( 74 );
g.addScores( e, 4 );
cout << "Best Score = " << g.findBiggest( ) << endl;
/// should give value 100
cout << "Worst Score = " << g.findSmallest( ) << endl;
/// should give value 50
}
我的错误输出如下
------ 构建开始:项目:Grader,配置:调试 Win32 ------ 构建开始于 2013 年 7 月 29 日凌晨 2:55:05。InitializeBuildStatus:触摸“Debug\Grader.unsuccessfulbuild”。ClCompile: Grader.cpp
Driver.cpp \psf\home\documents\visual studio 2010\projects\grader\grader\driver.cpp(12): error C2664: 'Grader::addScores' : 不能从'double [ 5]' to 'int []' 指向的类型是不相关的;转换需要 reinterpret_cast、C 样式转换或函数样式转换 \psf\home\documents\visual studio 2010\projects\grader\grader\driver.cpp(22): 错误 C2664: 'Grader::addScores' : 无法转换参数1 从 'double [4]' 到 'int []' 指向的类型是不相关的;转换需要 reinterpret_cast,构建失败。
已用时间 00:00:01.84 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========
有任何想法吗?