我正在尝试<<
为一个类重载 -operator 以便我可以使用std::cout
它。我复制了一些我在网上找到的代码来执行此操作,但我无法让它工作。
我收到一条错误消息:
error C2662: 'nspace::ElementCopy::name' : cannot convert 'this' pointer
from 'const nspace::ElementCopy' to 'nspace::ElementCopy &'
错误在<<
-operator 实现中:(请参阅我的代码注释)
这是我的头文件ElementCopy.h:
#pragma once
#include <string>
#include <iostream>
namespace nspace
{
class ElementCopy
{
public:
std::string name();
};
std::ostream& operator<< (std::ostream& stream, const ElementCopy& arg)
{
stream << arg.name(); //compiler error at this line
return stream;
}
}
这是我的短代码文件ElementCopy.cpp:
#include "ElementCopy.h"
namespace nspace
{
std::string ElementCopy::name()
{
return "string";
}
}
我无法弄清楚这个错误。为什么我会得到它?该运算符重载没有"this"
可言。我怎样才能解决这个问题?