命名空间类的操作重载
Operation overloading for namespaced classes
所以假设我有以下类:
namespace Example
{
class Bar {};
}
现在,如果我想重载类Bar
的运算符,我应该这样做吗:
namespace Example
{
class Bar {};
ostream& operator<<(ostream& os, const Bar& b)
{/*..........*/}
}
或者我应该做:
namespace Example
{
class Bar {};
}
ostream& operator<<(ostream& os, const Example::Bar& b)
{/*..........*/}
如果我应该做以上任何一项,请发布解释为什么应该这样做。
p.S./*.....*/
简单地表示函数体(为简单起见省略(
#include<iostream>
using namespace std;
namespace Example
{
class Bar
{//........
friend ostream& operator<<(ostream& os, const Bar& b);
};
}
ostream& operator<<(ostream& os, const Example::Bar& b)
{//..........
}
int main() {
Example :: Bar b;
// out<<b; I am not sure About this
return 0;
}
希望我这次做得好
相关文章:
- 重载操作程序时出错>>用于类中的字符串 memebr
- 使用操作重载对象重新分配对象
- 我的移动分配操作程序重载的分段错误
- 重载按位 OR('|'),用于链接操作无法按预期工作
- 具有已定义操作重载的 C++ 非类型化值对象/变量库
- 重载二进制操作的正确方法
- 为什么为单个赋值操作调用复制构造函数和重载赋值运算符
- 使用重载运算符在函数调用时执行操作
- 方括号和圆括号操作器,如何选择重载
- 如何删除模板类的输出操作程序重载的错误
- 重载分配操作/流
- 使用模板操作重载 *(左侧和右侧)
- 重载模板类之外的操作
- 位字段操作中的运算符[] 重载?
- 在动态内存上操作,重载constmemeber函数有意义吗
- 在C++中创建一个具有多态性和操作重载的模板
- LNK 2019 尝试重载"<<"操作器时出错
- 在c++中操作重载赋值运算符
- 类和字符串之间的重载操作
- c++重载(+)操作