我认为我正确地声明了所有内容,但我在 main.cpp 的第 22-26 行中得到了未声明的标识符。我也得到这个 = 在我的employee.cpp 的第 12-16 行中是模棱两可的。在employee.cpp 的第55 行,我还有一个奇怪的表达式必须有指向薪水对象类型的指针。我真的很感激任何帮助,因为我的学校目前没有导师。
//Employee.h
using namespace std;
class Employee {
private:
public:
string FirstName;
string LastName;
string DisplayFirstName;
string DisplayLastName;
string DisplaySalary;
string SearchName;
float Salary;
Employee( string FirstName, string LastName, float Salary )
{
setFirstName(FirstName);
setLastName(LastName);
setSalary(Salary);
}
string setFirstName(string FirstName);
string setLastName(string LastName);
float setSalary(float Salary);
void ReadFile(ifstream& MyinFile, string FirstName, string LastName, float Salary);
string EmployeeSearch(string LastName[], string SearchName);
void DisplayEmployee (string DisplayFirstName, string DisplayLastName, string DisplaySalary);
Employee();
};
//Employee.cpp
#include <iostream>
#include <fstream>
#include <string>
#include "Employee.h"
using namespace std;
string setFirstName(string FirstName)
{
**FirstName = NULL;** //ambiguous error
}
string setLastName(string LastName)
{
**LastName = NULL;** //ambiguous error
}
float setSalary(float Salary)
{
Salary = 0.0;
}
void ReadFile(ifstream& MyinFile, string FirstName, string LastName, float Salary)
{
char exit_char;
int MaxSize;
int count = 0;
MyinFile.open("employee.dat");
if (!MyinFile)
{ //no
cout << "Can't open input file." << endl; //Tests the right file.
char exit_char; //End Program
cout << "Press any key to exit" << endl;
cin >> exit_char;
}
for(count = 0; count < MaxSize; count++)
{
MyinFile >> LastName[count];
MyinFile >> FirstName[count];
MyinFile >> **Salary[count];** //error
}
MyinFile.close();
}
string EmployeeSearch(string LastName[], string FirstName[], float Salary, string SearchName, string DisplayFirstName, string DisplayLastName, string DisplaySalary)
{
cout << "Please enter the name of the employee you would like to search." << endl;
cin >> SearchName;
for (int i = 0; i < 10; i++ )
{
if (LastName[i] == SearchName)
{
DisplayFirstName = FirstName[i];
DisplayLastName = LastName[i];
DisplaySalary = **Salary[i];** //error
}
else
cout << "Could not find employee." << endl;
}
};
void DisplayEmployee (string DisplayFirstName, string DisplayLastName, string DisplaySalary)
{
cout << DisplayFirstName << " ";
cout << DisplayLastName << " ";
cout << DisplaySalary << endl;
};
//Main.cpp
#include <iostream>
#include <fstream>
#include <string>
#include "Employee.h"
using namespace std;
const int MaxSize = 100;
int main()
{
char Redo; //Input a character to redo the program
ifstream MyinFile;
cout << "Your Salary Machine\n\n";
Employee Employee;
Employee.ReadFile(**MyinFile, FirstName, LastName, Salary**); //undeclared identifier error
do
{
Employee.EmployeeSearch(**LastName[], SearchName**); //undeclared identifier error
Employee.DisplayEmployee(**DisplayFirstName,DisplayLastName,DisplaySalary**); //undeclared identifier error
//Asks user if they want redo the program
cout << "Would you like to redo the program?\n";
cout << "Please enter Y or N: \n";
cin >> Redo;
}while(Redo == 'Y' || Redo == 'y');
return 0;
}
编写该程序以读取具有名字和姓氏的文件,然后是薪水,然后能够输入文件中任何人的姓氏,它将显示姓名和薪水,然后重复。我假设使用构造函数将名字和姓氏初始化为 NULL,然后将薪水初始化为 0.0。我还应该使用 get 和 set 成员函数。
以下是错误:
------ Build started: Project: Lab3Project, Configuration: Debug Win32 ------
Main.cpp
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(22): error C2065: 'FirstName' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(22): error C2065: 'LastName' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(22): error C2065: 'Salary' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(25): error C2065: 'SearchName' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(25): error C3861: 'LastName': identifier not found
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(26): error C2065: 'DisplayFirstName' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(26): error C2065: 'DisplayLastName' : undeclared identifier
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\main.cpp(26): error C2065: 'DisplaySalary' : undeclared identifier
Employee.cpp
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\employee.cpp(12): error C2593: 'operator =' is ambiguous
c:\program files\microsoft visual studio 10.0\vc\include\xstring(772): could be 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(_Elem)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(767): or 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const _Elem *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
while trying to match the argument list '(std::string, int)'
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\employee.cpp(16): error C2593: 'operator =' is ambiguous
c:\program files\microsoft visual studio 10.0\vc\include\xstring(772): could be 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(_Elem)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
c:\program files\microsoft visual studio 10.0\vc\include\xstring(767): or 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(const _Elem *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
while trying to match the argument list '(std::string, int)'
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\employee.cpp(40): error C2109: subscript requires array or pointer type
\\psf\home\documents\visual studio 2010\projects\csci112\lab3project\lab3project\employee.cpp(55): error C2109: subscript requires array or pointer type