2 wu91564191 wu91564191 于 2014.11.03 09:35 提问

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 &”
望路过的大侠出手相救^_^

1个回答

VisualEleven
VisualEleven   Ds   Rxr 2015.01.04 16:53

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

#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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!