error C2440: “默认参数”: 无法从“const char [7]”转换为“std::string &”

代码如下:
1 #include
2 using namespace std;
3 class Student{
4 string name;
5 public:
6 Student(string& n ="noName") :name(n){}
7 };
8 class Teacherk{
9 string name;
10 public:
11 Teacher(string& n = "noName") :name(n){}
12 };
13 void addCourse(Student& s);
14 void addCourse(Teacher& s);
15 int main(){
16 addCourse(Teacher("Prof.DingleBerry"));
17 }
第6行和第11行显示代码错误信息 error C2440: “默认参数”: 无法从“const char [7]”转换为“std::string &”
望路过的大侠出手相救^_^

c++

1个回答

修改了一下,类似下面这样:

#include <iostream>
#include <string>

using namespace std;

class Student
{
    string name;
public:
    Student(const string& n ="noName") :name(n){}
};

class Teacher
{
    string name;
public:
    Teacher(const string& n = "noName") :name(n){}
};

void addCourse(Student& s) 
{
    // ...
}
void addCourse(Teacher& s)
{
    // ...
}

int main()
{
    addCourse(Teacher("Prof.DingleBerry"));
    return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问