不能过载"<<"操作者

时间:2016-09-07 23:40:28

标签: c++ output overloading

无处不在,我看到每个人都在超载<<运算符在几行中,看起来很简单,但由于某种原因,重载<<我的代码中的运算符什么都不做。

在我的.h我有:

    friend std::ostream& operator<<(std::ostream& os, const Test& test);

在我的.cpp中我有:

    std::ostream& operator<<(std::ostream& out,const DeckOfCards& deck) {
    out << "oi"; //just testing with a normal string before i try methods
    return out;
}

最后在我的主要功能中:

Test* test = new Test();
std::cout << "output is: " << test << std::endl;

有人可以告诉我我做错了什么吗? 提前致谢。

1 个答案:

答案 0 :(得分:6)

尝试这个怎么样:

std::cout << "output is: " << *test << std::endl;

在你的代码中,你是cout指针,而不是对象。