gpt4 book ai didi

c++ - 全局 operator<< 和成员 operator<< 共存

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:27 28 4
gpt4 key购买 nike

有谁知道如何让这两个重载运算符共存?

#include<iostream> 

template< typename T >
class A;

template< typename T >
std::ostream& operator<<( std::ostream& o, const A<T>& e );

template< typename T >
class A
{
A& operator <<( const A& e );
friend std::ostream& operator<< <>( std::ostream& o, const A<T>& e );
};

int main()
{
// program
return 0;
}

// def A<T>::A& A::operator <<( const A& e );
// def std::ostream& operator<< <>( std::ostream& o, const A<T>& e );

错误:

$ g++ prov.cpp -o prov
prov.cpp:13:33: error: declaration of ‘operator<<’ as non-function
prov.cpp:13:33: error: expected ‘;’ at end of member declaration
prov.cpp:13:36: error: expected unqualified-id before ‘<’ token

对不起我的英语不好。因此,我写得很少。

问候和感谢!

最佳答案

我想你想要:

friend std::ostream& operator<< <T>( ... );

在好友声明中。 (我不确定:我的政策一直是已经定义了 friend inline,所以没关系是不是模板。但这看起来像标准中的示例。)

关于c++ - 全局 operator<< 和成员 operator<< 共存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com