头文件错误中的结构类型

时间:2013-07-14 22:06:45

标签: c++ compiler-construction struct header initialization

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

“没有匹配函数来调用'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

任何帮助都将受到赞赏

1 个答案:

答案 0 :(得分:0)

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