2014-01-14 2 views
0

Я получаю сообщение об ошибке, множественного определения addOrRemoveCashier (станд :: строка)кратное определение функции класса

со следующими кодами, с помощью NetBeans 7.4

это то, что у меня есть

коды

login.h

#ifndef LOGIN_H 
#define LOGIN_H 
#include <iostream> 

class login { 

public: 
    void addOrRemoveCashier(std::string role); 

private: 

}; 

#endif /* LOGIN_H */ 

login.cpp

#include <sstream> 
#include <fstream> 
#include "login.h" 

void login::addOrRemoveCashier(std::string role) 
{ 
    if (role == "Administrator") 
    { 
     std::cout << " " << std::endl; 
     std::cout <<"Select a choice!" std::endl; 
     std::cout << "1) Add New Cashier" <<std::endl; 
     std::cout << "2) Remove Existing Cashier" << std::endl; 
     std::cout << "3) Back" << std::endl; 
     std::cin >> input; 
     switch (input) 
     { 
      case 1: 
       //add a cashier 
       //go back to the system Main menu after adding a cashier 
       break; 
      case 2: 
       //remove a cashier 
       //go back to the system Main menu after removing a cashier 

       break; 
      case 3: 

       break; 
      default: 
       std::cout << "Invalid choice!" << std::endl; 
       break; 
       std::cin.get(); 
     } 
    } 
    else 
    { 
     std::cout << "You don't have access rights" << std::endl; 
    } 
} 

main.cpp

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

inline char caesarDecrypt(char c) 
{ 
if(isalpha(c)) 
    { 
     c = toupper(c); 
     c = (((c+65)-3) % 26) + 65; 
    } 
    return c; 
} 

int main() 
{ 
    int attempt = 3; 
    bool found = false; 
    int input; 
    login doAdministration; 
    std::string line,userName,password,output,userNameInFile,passwordInFile,roleInFile,role; 
    std::cout <<"----------------------------------"<< std::endl; 
    std::cout << "Login Page!" << std::endl; 
    while(attempt) 
    { 
     if(attempt != 0) 
     { 
      std::ifstream readFile("userandPassword.txt"); 
      std::cout << "Enter UserName: "; 
      std::cin >> userName; 
      std::cout << "Enter Password: "; 
      std::cin >> password; 
      while (readFile >> userNameInFile >> passwordInFile >> role) 
      { 
       output = ""; 
       for(int x = 0; x < passwordInFile.length(); x++) 
       { 
        output += caesarDecrypt(passwordInFile[x]); 
       } 
       if (userName == userNameInFile && password == output) 
       { 
        role = roleInFile; 
        std::cout << role << std::endl; 
        std::cout << "Login Successfully!"<< std::endl; 
        found = true; 

        std::cout << " " << std::endl; 
        std::cout <<"Welcome to System Main Menu!"<< std::endl; 
        std::cout << "1) Administration-Add/Remove Cashier" << std::endl; 
        std::cout << "2) Logout" << std::endl; 

        std::cout << "\nEnter your choice" << std::endl; 
        std::cin >> input; 

        switch (input) { 
        case 1: 
         doAdministration.addOrRemoveCashier(role); 
        break; 
        case 2: 
         go back to the Login page; 
        break; 
    - 
        default: 
         std::cout << "Invalid choice!" << std::endl; 
        break; 
        std::cin.get(); 
    } 
        break; 

       } 
      } 
      if (!found) 
      { 
       attempt -= 1; 
       std::cout << "InValid UserName Or Password"<< std::endl; 
       std::cout << "Attempts Left: " << attempt<<std::endl; 
       if(attempt == 0) { 
        std::cout <<"System LOCKED!"; 
       } 
      } 
      if(found) 
      { 
       break; 
      } 
     } 
    } 
} 

пожалуйста, дайте совет и помощь благодаря

+0

один вопрос в то время, пожалуйста. Кроме того, предоставьте SSCCE (sscce.org). – juanchopanza

+0

ok Меня больше интересует решение ошибки «множественное определение addOrRemoveCashier (std :: string)» – user3175729

+0

0) Звучит как ошибка связи, но я не знаю netbeans, поэтому я не могу сказать вам, как ее решить - попробуйте * упрощенный проект с двумя исходными файлами, а затем создайте. 1) Сделайте 'login' отдельной функцией, которая упростит многое. 2) См. 1). – Beta

ответ

1

Вы даже пытались собрать login.cpp? В случае, если вы должны были видеть ошибки как этот:

std::cout <<"Select a choice!" std::endl; 

(недостающие < <)

+0

также имеются ошибки в main.cpp и одна неопределенная переменная (ввод int) в login.cpp – nurettin

Смежные вопросы