错误C2660:'SurroundTheGrid':函数不带0个参数

时间:2013-03-19 17:02:15

标签: c++ arguments

请帮助,在尝试测试我的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;
 }

2 个答案:

答案 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参数。这意味着你应该提供正确数量和类型的参数(同样,我不能告诉你有多少或什么参数,因为你没有发布你的代码)。