4

我看不出我在这里做错了什么。我不会展示我的 main 函数的完整创建,因为我认为这无关紧要。

我的问题与我创建的这个类有关:

class employee
{
    //create private variables for divider
    string firstName;
    string lastName;
    char gender;
    int dependants;
    double annualSalary;
    static int numEmployees;

public:

    Benefit1 benefit;

    employee()
    {
        //create default values for varaibles
        firstName = "not given";
        lastName = "not given";
        gender = 'U';
        dependants = 0;
        annualSalary = 2000;
    }

    employee(string first, string last, char gen, int dep, double salary, Benefit1 ben)
    {
        //allow input
        firstName = first;
        lastName = last;
        gender = gen;
        dependants = dep;
        annualSalary = salary;
        benefit = ben;
    }
}

(是的,Benefit1 在课堂上被正确调用。)当我尝试将其实例化为 employee2 时,我的问题就出现了:

employee employee2("Mary", "Noia", 'F', "5", 24000.0, benefit1);

出于某种原因,我的程序不允许我将任何东西放在单词“Mary”所在的第一个实例中。正如您所看到的,第一个实例应该首先是字符串,那么为什么不让使用任何东西呢?

4

2 回答 2

4

问题出在第五个参数上 - 它期待 anint并且您正在绕过它"5"。尝试:

employee employee2("Mary", "Noia", 'F', 5, 24000.0, benefit1);
于 2012-11-20T19:54:41.237 回答
0

您传递的第四个参数必须是int:-

employee employee2("Mary", "Noia", 'F', 5, 24000.0, benefit1);
于 2012-11-20T19:55:22.560 回答