c++ - 流插入运算符重载

标签 c++

我真的不确定如何调用该函数:

friend ostream& operator<<(ostream& out, stack::myItem& theItem);

对我的堆栈对象公开:

class stack
{
public:
    stack(int capacity);
    ~stack(void);
     void method1();
     ...

private:

    struct myItem
    {
        int             item;
    };

      ...
public:
    friend ostream& operator<<(ostream& out, stack& s);
    friend ostream& operator<<(ostream& out, stack::myItem& theItem);
};

最佳答案

这与对任何其他类型使用流运算符 << 没有什么不同(出于某种原因,它被称为运算符重载)。

但是,输出不应该修改一个对象,因此你真的应该通过 const 引用传递它(否则调用临时对象将无法编译)。

friend ostream& operator<<(ostream& out, const stack& s);
friend ostream& operator<<(ostream& out, const stack::myItem& theItem);

关于c++ - 流插入运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534819/

相关文章:

java - 在自由范围内生成吸血鬼数字

java - 为什么很多 nosql 存储都是用 java 写的?

c++ 使用自定义游标 gdi

c++ - string::substr 中无法解释的 out_of_range

c++ - LLDB 在 C++ 类虚方法中不显示变量值

c++ - 第 4 次射击声明在 SFML 游戏中不起作用

c++ - VisualStudio 2010 Express 上的 RDTSC - C++ 不支持默认整数

c++ - 如何在 C++ 中的基类和派生类之间共享公共(public)默认参数值?

C++ 将字符串转换为 char * 然后返回

c++ - 与常规 GCC 不同,为什么 MinGW GCC 即使使用 `-pedantic-errors` 也可以容忍缺失的返回类型?