运算符重载解决方案 我已经制作了一个C++代码。在其中保存项目的MList。我重载了
您正在将值添加到临时字符串中,这可能涉及隐式转换,具体取决于模板类型(这里您的数值被转换为字符) 只需打印值,无需临时字符串:运算符重载解决方案 我已经制作了一个C++代码。在其中保存项目的MList。我重载了,c++,visual-studio,pointers,operator-overloading,C++,Visual Studio,Pointers,Operator Overloading,您正在将值添加到临时字符串中,这可能涉及隐式转换,具体取决于模板类型(这里您的数值被转换为字符) 只需打印值,无需临时字符串: friend ostream& operator<<(ostream &out, const MSet<V> &m) { out << "Size " << m.size_ << endl; out << "Cap " << m.capacity_
friend ostream& operator<<(ostream &out, const MSet<V> &m)
{
out << "Size " << m.size_ << endl;
out << "Cap " << m.capacity_ << endl;
for (int i = 0; i < m.size_; i++)
{
if (i < m.size_ - 1)
out << m.ary[i].element << ",";
else
out << m.ary[i].element;
}
return out;
}
friend-ostream&operator您正在将值添加到临时字符串中,这可能涉及隐式转换,具体取决于模板类型(此处您的数值已转换为字符)
只需打印值,无需临时字符串:
friend ostream& operator<<(ostream &out, const MSet<V> &m)
{
out << "Size " << m.size_ << endl;
out << "Cap " << m.capacity_ << endl;
for (int i = 0; i < m.size_; i++)
{
if (i < m.size_ - 1)
out << m.ary[i].element << ",";
else
out << m.ary[i].element;
}
return out;
}
friend ostream&Operator删除了不相关的C标记。请不要添加不相关的标签。还请学习如何创建一个。最后,您应该学习如何使用调试器,以及如何逐行检查代码。我已经使用了调试器,并逐行执行和检查了代码。调试器中显示的字符串是s=“Size 1\nCap 2\n\x3”。但是当它打印到控制台而不是3时,它会打印一些符号。我不知道。我可以在调试器中看到值3,但当它与字符串连接时,它会插入\x3。我删除了不相关的C标记。请不要添加不相关的标签。还请学习如何创建一个。最后,您应该学习如何使用调试器,以及如何逐行检查代码。我已经使用了调试器,并逐行执行和检查了代码。调试器中显示的字符串是s=“Size 1\nCap 2\n\x3”。但是当它打印到控制台而不是3时,它会打印一些符号。我不知道。我可以在调试器中看到值3,但当它与字符串连接时,会插入\x3。非常感谢您的朋友。这解决了我的问题。对此我真的很感激。你能检查一下我的代码,告诉我我是否做了很好的编码练习吗?那太好了。非常感谢你的朋友。这解决了我的问题。对此我真的很感激。你能检查一下我的代码,告诉我我是否做了很好的编码练习吗?那太好了。
friend ostream& operator<<(ostream &out, const MSet<V> &m)
{
out << "Size " << m.size_ << endl;
out << "Cap " << m.capacity_ << endl;
for (int i = 0; i < m.size_; i++)
{
if (i < m.size_ - 1)
out << m.ary[i].element << ",";
else
out << m.ary[i].element;
}
return out;
}