请帮助,在尝试测试我的C ++编程任务时遇到问题。任何帮助都会非常感激,我认为这与我在一个名为SurroundTheGrid()的函数中的参数有关。
1>------ Build started: Project: Assignment 08 ADL, Configuration: Debug Win32 ------
1>Build started 3/19/2013 12:57:34 PM.
1>InitializeBuildStatus:
1> Creating "Debug\Assignment 08 ADL.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>ClCompile:
1> Assignment 08 ADL.cpp
1>j:\co 127\assignment 08 adl\assignment 08 adl.cpp(108): error C2660: 'SurroundTheGrid' : function does not take 0 arguments
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:12.90
==========构建:0成功,1失败,0最新,0跳过==========
很抱歉没有发布每个人的代码,我是新来的。但是在这里,任何帮助都会很棒,谢谢。
/*
Anthony Lehnen
Assignment 08 ADL
03/12/2013
*/
#include <iostream>
#include <string>
#include "student.h" // this includs student.h
#include "COMPFUN.H" // for decimals
#include "GRID.H"
extern const int east = 3;
using namespace std;
//************HEADER**************//
void Heading()
{
system("cls");
cout << "Anthony Lehnen\t" "CO 127\t" "02/28/2013\t" "Assignment 07" << endl;
cout << endl;
cout << endl;
}
void display(student aStudent)
{
decimals(cout, 2);
cout << "{ student: " << aStudent.name();
cout << ", GPA = " << aStudent.GPA() << " }" << endl;
}
int Student()
{ // test drive student: this main will vary amongst students
student aStudent("Nguyen", 36.5, 123.5);
student anotherStudent("Stella", 4.0, 16.0); // Straight A so far
student one("one", 0.0, 0.0); // Should be 3.0
one.completedCourse( 4.0, 2.0 );
one.completedCourse( 4.0, 4.0 ); // 4 credit A
display(one);
display(aStudent);
display(anotherStudent);
// Finish branch coverage testing of standing
student two("two", 100.0, 30.0);
student three( "three", 30.05, 100.0 );
student four("four" , 60.0, 100.0 );
student five("five ", 60.05, 100.0);
student six ("six " , 90.0, 100.0);
student seven("seven", 90.05, 100.0 );
cout << endl << endl;
cout << "Student: " << one.name() <<" is a " << one.standing() << endl;
cout << "Student: " << two.name() <<" is a " << two.standing() << endl;
cout << "Student: " << three.name() <<" is a " << three.standing() << endl;
cout << "Student: " << four.name() <<" is a " << four.standing() << endl;
cout << "Student: " << five.name() <<" is a " << five.standing() << endl;
cout << "Student: " << six.name() <<" is a " << six.standing() << endl;
cout << "Student: " << seven.name() <<" is a " << seven.standing() << endl;
cout << endl << endl;
return 0;
}
void SurroundTheGrid()
{
int r, c;
for(r = 0; r < g.nRows(); r++)
{
myGrid.putDown(r, 0);
myGrid.putDown(r, myGrid.nColumns()-1);
}
for(c = 1; c < myGrid.nColumns() -1; c++)
{
myGrid.putDown(0, c);
myGrid.putDown(myGrid.nRows()-1, c);
}
}
int TestSurroundGrid()
{//Test drive SurroundTheGrid
grid myGrid(4, 10, 3, 0, east);
SurroundTheGrid(myGrid);
myGrid.display();
return 0;
}
//**********************MAIN***************************//
int main()
{
Heading();
Student();
system("pause");
system("CLS");
Heading();
SurroundTheGrid();
system("pause");
return 0;
}
答案 0 :(得分:3)
从编译器中读取错误消息是一项重要技能,所以让我们看看我们可以从这个中获得什么。你得到的具体错误就是这个错误:
j:\co 127\assignment 08 adl\assignment 08 adl.cpp(108): error C2660: 'SurroundTheGrid' : function does not take 0 arguments
正如您已经正确解释的那样,它说这个问题与您的SurroundTheGrid
功能有关。但是,它不是函数本身的声明或定义。问题实际上是在函数的一个调用中。
具体来说,错误消息告诉您问题位于文件assignment 08 adl.cpp
的第108行附近(尽管它为您提供了完整路径以使消息更长)。
它告诉你,你试图在没有参数的情况下调用SurroundTheGrid
函数,但它实际上需要一些参数(我不知道确切的数字,错误信息没有说)。
据推测,第108行发生的事情是你有类似的东西:
SurroundTheGrid(); // passes no arguments to the function -- WRONG!
什么时候应该有:
SurroundTheGrid(myGrid); // pass an argument specifying the grid (or something)
答案 1 :(得分:0)
我不能在这里详细介绍,因为你没有发布你的代码,但你的猜测是正确的。与错误状态一样,您使用0个参数调用函数SurroundTheGrid
(所以只是括号,没有任何参数),但函数不接受0参数。这意味着你应该提供正确数量和类型的参数(同样,我不能告诉你有多少或什么参数,因为你没有发布你的代码)。