2014-10-09 3 views
-3

Я получаю ошибку в первых двух функциях 'input' и 'genWindows'. У меня никогда не было этой ошибки и я не могу понять, что может быть причиной этого, и почему класс считается неквалифицированным.Ожидаемый неквалифицированный идентификатор до 'void' C++

#include <iostream> 
#include <string> 
#include <fstream> 
#include <stdlib.h> 
#include "Queue.h" 
#include "window.h" 
#include "sim.h" 

using namespace std; 

string fileInput; 
ifstream file; 
string line; 
window* windows; 
Queue<int>* queue = new Queue<int>; 
Queue<int>* timeQueue = new Queue<int>; 
Queue<int>* numStudent = new Queue<int>; 
int simTime; 
int numWindows; 
int count; 
bool check; 
int numWinIdle; 
int winIdle; 

sim::void input() 
{ 
    cout << "Please enter a file name: " << endl; 
    cin >> fileInput; 
} 

sim::void genWindows() 
{ 
    file.open(fileInput.c_str()); 
    if(file.good()) 
    { 
     getline(file, line); 
     numWindows = atoi(line.c_str()); 
     windows = new window[numWindows]; 
    } 
    file.close(); 
} 


sim::void placeStudent(int n) 
{ 
    for(int i = 0; i < numWindows; ++i) 
    { 
     if(windows[i].isEmpty()) 
     { 
      numWinIdle++; 
      winIdle += windows[i].idleTime; 
      windows[i].idleTime = 0; 
      windows[i].sTime = n; 
      break; 
     } 
    } 
} 

sim::void removeStudent() 
{ 
    for(int i = 0; i < numWindows; ++i) 
    { 
     if(windows[i].sTime <= simTime) 
     { 
      windows[i].sTime = 0; 

     } 
    } 
} 

sim::void setIdleTime() 
{ 
    for(int i = 0; i < numWindows;++i) 
    { 
     if(windows[i].isEmpty()) 
     { 
      windows[i].idleTime += (simTime - windows[i].idleTime); 
     } 
    } 
} 

sim::void getIdleTime() 
{ 
    for(int i = 0; i < numWindows;++i) 
    { 
     if(windows[i].idleTime != 0) 
     { 
      numWinIdle++; 
      winIdle += windows[i].idleTime; 
     } 
    } 
} 
sim::void genQueue() 
{ 
    file.open(fileInput.c_str()); 
    int numStudents; 
    check = true; 
    getline(file,line); 
    while(file >> line) 
    { 
     if(numStudents > 0) 
     { 
      queue->pushOn(atoi(line.c_str())); 
      --numStudents; 
     } 
     else if(check) 
     { 
      timeQueue->pushOn(atoi(line.c_str())); 
      check = false; 
     } 
     else 
     { 
      numStudent->pushOn(atoi(line.c_str())); 
      numStudents = atoi(line.c_str()); 
      check = true; 
     } 
    } 
    file.close(); 
} 

sim::bool checkWindows() 
{ 
    for(int i = 0; i < numWindows; ++i) 
    { 
     if(windows[i].isEmpty()) 
     { 
      return true; 
     } 
     else 
      return false; 
    } 
} 

sim::int numWinOpen() 
{ 
    int count; 
    for(int i = 0; i < numWindows; ++i) 
    { 
     if(windows[i].isEmpty()) 
     { 
      count++; 
     } 
    } 
    return count; 
} 

sim::void simulationTime() 
{ 
    if(timeQueue->isEmpty()) 
    { 
     simTime++; 
    } 
    else 
    { 
     simTime = timeQueue->getFront(); 
     timeQueue->popOff(); 
    } 
} 

sim::void runSim() 
{  
    if(checkWindows() && queue->isEmpty()) 
    { 
     cout<<winIdle<<endl; 
     cout<<numWinIdle<<endl; 
     double mean = winIdle/double(numWinIdle); 
     cout<<"Registrar cleared"<<endl; 
    } 
    else 
    { 

     simulationTime(); 
     removeStudent(); 
     while(numWinOpen() > 0) 
     { 
      if(queue->isEmpty()) 
      { 
       break; 
      } 
      else if(numStudent->isEmpty()) 
      { 
       if(numWinOpen() > 0 && queue->isEmpty() == false) 
        placeStudent(queue->getFront() + simTime); 
        queue->popOff(); 
      } 
      else if(numStudent->getFront() > numWinOpen()) 
      { 
       for(int i = 0; i < numWinOpen();++i) 
       { 
        if(numWinOpen() > 0 && queue->isEmpty() == false) 
         placeStudent(queue->getFront() + simTime); 
         queue->popOff(); 
       } 
       numStudent->popOff(); 
      } 
      else if(numStudent->getFront() <= numWinOpen()) 
      { 
       for(int i = 0; i < numStudent->getFront();++i) 
       { 
        if(numWinOpen() > 0 && queue->isEmpty() == false) 
         placeStudent(queue->getFront() + simTime); 
         queue->popOff(); 
       } 
       numStudent->popOff(); 
      } 
     } 
     setIdleTime(); 
     runSim(); 
    } 
} 

ответ

1

sim::void - вздор. Вы имеете в виду void.

Если функция была объявлена ​​в пространстве имен, то это имя функции, а не тип возвращаемого значения, что необходимо квалификационная:

void sim::input() 
1

Это не имеет никакого смысла:

sim::void input() 

Я думаю, что вы означает следующее:

void sim::input() 
Смежные вопросы