2013-07-14 75 views
0

我想在头文件中使用结构类型,然后在我的主文件初始化,但继续得到错误:结构类型在头文件错误

“为号召“gradingStudent没有匹配功能: :gradingStudent()”“

HeaderFile.h

#ifndef HEADERFILE_H 
#define HEADERFILE_H 

#include <iostream> 
#include <fstream> 
#include <string> 
#include <iomanip> 

using namespace std; 

struct gradingStudent 
{ 

    string studentName; //student's name 

    int amtGradesHW; 
    int amtGradesPro; 
    int amtGradesExam; //number of homework programs 

    float perTotHW; 
    float perTotPro; 
    float perTotExams; //percent the grade is worth 

    float HWGradeRecieved; 
    float ProGradeRecieved; 
    float ExamGradeRecieved; //points recieved 

    float TotalPercentage; //final grade recieved 

    char X; //letter grade 

    string wittyComment; //comment on grade 

    int const MAX; 

    }; 
int openFiles(ifstream&, ofstream&); 

#endif 

编程Assignment.cpp

#include <iostream> 
#include <fstream> 
#include <string> 
#include "HeaderFile.h" 

using namespace std; 

int main(){ 



ifstream inFile; //input file variable 
ofstream outFile; //output file stream 

gradingStudent grades; //intialize my struct 

//Test If files can be opened 
if(!openFiles(inFile, outFile)){ 
cout << "...exiting " << endl; 
system("pause"); 
         }//end if 





}//end main 

/* 
* Input: ifstream and ofstream 
* Return Type: int 
* 
* OpenFiles will ask the user for the files to be opened and check if they are able to   be opened 
    * usage: openFiles(inFile, OutFile) 
    **/ 

    int openFiles(ifstream& inD, ofstream& outD){ 

string inFileName, outFileName; 

cout << "Please enter the name of the file to be read: " << endl; 
cin >> inFileName; 
cout << " " << endl; 

inD.open(inFileName.c_str()); //open this file 
if (!inD) 
{ 
     cout << "ERROR. THE INPUT FILE: " << inFileName << " WAS UNABLE TO BE  OPENED!"  << endl ; 
     cout << "  " << endl;  

     return 0; 
      }//end input if fail state 


    cout << "Please enter the name of the file to be written: " << endl; 
    cin >> outFileName; 
    cout << " " << endl;     

     outD.open(outFileName.c_str()); //open this file 

     if (!outD) 
{ 
     cout << "ERROR. THE OUTPUT FILE: " << outFileName << " WAS UNABLE TO BE   OPENED!" << endl ; 
     cout << "  " << endl;  

     return 0; 
      }//end output if fail state  

}//end open file 

任何帮助将不胜感激

回答

0

你有一个const(和非static)成员变量(MAX),它需要显式初始化。因此你必须明确地为你的类定义一个构造函数。

+0

谢谢你的工作。 – user2445852