考虑以下代码:
class MyClass
{
template <typename Datatype>
friend MyClass& operator<<(MyClass& MyClassReference, Datatype SomeData);
// ...
};
template <typename Datatype>
MyClass& operator<<(MyClass& MyClassReference, Datatype SomeData)
{
// ...
}
如何在类operator<<
内部定义,而不是作为友元函数?像这样的东西:
class MyClass
{
// ...
public:
template <typename Datatype>
MyCLass& operator<<(MyClass& MyClassReference, Datatype SomeData)
{
// ...
}
};
上面的代码会产生编译错误,因为它接受两个参数。删除MyClassReference
参数修复了错误,但我有依赖于该参数的代码。只是MyClassReference
相当于*this
?