在构造类的时候遇到了单引号和双引号不分的情况。
#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 字符串类型。
解决问题。