在构造类的时候遇到了单引号和双引号不分的情况。
#include<iostream>
#include<string>
using namespace std;
class Student {
public:
Student(string, float);
void out();
private:
string name;
int score;
};
Student::Student(string n, float s):name(n),score(s)
{
}
void Student::out() {
cout << name << ":" << score << endl;
}
int main()
{
Student s[] =
{
Student("2001",60),
Student("2002",67),
Student("2002",68),
Student("2002",78),
Student('2002',96)
};
Student* p = s;
p->out();
(p + 2)->out();
(p + 4)->out();
return 0;
}
结果最后一个数组里的元素出错了。


查询原因
单引号是 char 字符类型, 双引号是 string 字符串类型。
解决问题。
本文讲述了在C++编程中,如何区分并正确使用单引号(char)和双引号(string)在构造函数中的实例,以及遇到的因类型混淆导致的错误,最后给出了问题的解决方案。
1176

被折叠的 条评论
为什么被折叠?



