无法找到匹配项

时间:2012-09-04 03:02:37

标签: c++ class match

我收到以下错误,我无法弄清楚原因:

Could not find a match for 'PEmployee::PEmployee(char *, double)' in function main()

这是我的代码:

class PEmployee
{
    public:
        PEmployee();
        PEmployee(string employee_name, double initial_salary);
        void set_salary(double new_salary);
        double get_salary() const;
        string get_name() const;
    private:
        Person person_data;
        double salary;
};

int main()
{
    PEmployee f("Patrick", 1000.00);
    cout << f.get_name() << " earns a salary of ";
    << f.get_salary() << endl;
    return 0;
}

有人可以告诉我为什么会收到此错误吗?

感谢。

1 个答案:

答案 0 :(得分:1)

类型为std::string的{​​{1}}的构造函数不明确,因此我不知道为什么会出现该错误。编译器应该认识到它可以为您动态创建char *

来自http://en.cppreference.com/w/cpp/string/basic_string/basic_string

  

basic_string(const CharT * s,                 const Allocator&amp; alloc = Allocator());