【发布时间】:2016-04-16 14:38:13
【问题描述】:
昨晚我关于向量配对的问题得到了解答:)
但是,我有一个新问题。在我的例子中,我在我的类中声明了一个 toString() 方法,如下所示。
string toString() {
stringstream info;
info << "Name : " << getName() << "\nSubject: " << getSubject() << "\nResult : " << getGrade() << endl << endl;
return info.str();
}
接下来,我有一个矢量和打印代码如下:
vector<pair<Student*, string>> Students;
//...
Students.push_back(make_pair(Abbie, Abbie->getGrade(80)));
//...
for (int i = 0; i < Students.size(); i++)
{
cout << Students[i]->toString() << endl;
}
显然成绩没有被捕获,也没有被打印出来。
如果我有一个 toString(),我不应该这样 cout 吗?如果不是,我可以知道我应该怎么做吗?
有人可以帮忙吗? :)
编辑:我找到了我的错误来源 - 我使用“==”而不是“=”来分配值。不过还是谢谢大家帮忙
【问题讨论】:
-
getGrade()是否返回它所支持的内容?*Abbie中存储的数据是否正确?还有更多我们没有看到的相关代码。 -
是的。我怀疑这不是我应该采用的方式。这就是我发布问题的原因......
-
好吧,当您尝试 cout 时,您错过了“第一个”,开始指出一些事情。
cout << Students[i].first->toString() << endl;如果你告诉我这段代码可以编译,我会很惊讶。 -
我确实尝试过'cout toString() toString();'但是我收到了一个指针类型错误。我猜我第一个只有两个元素,第二个元素有一个冲突。
-
第一个元素是指针,第二个元素不是这样 try 'cout toString()