Can运算符<<用于设计我们自己的输出显示方式

Can operator << be used to design our own way of giving output display

本文关键字:lt 我们自己 自己的 输出 我们 显示方式 运算符 用于 Can      更新时间:2023-10-16

类似

std::cout<<type_variable 

调用cout并将该变量或内容打印在屏幕上。

如果我想设计自己的方式来处理如何输出呢。我用函数创建了自己的输出方式,比如

std::cout<<string(5,'-')<<std::endl;
std::cout<<"name"<<std::endl;
std::cout<<string(5,'-')<<endl;

但是,我希望有操作员"<<"或类似人员来提供显示。并创建操作员以形式输出

out<<some_output 

我找不到这个问题的答案,对编程的研究似乎不够充分,但这可能吗?

简单,您可以制作一个操纵器:

std::ostream& custom_output(std::ostream& os)
{
    return os << std::string(5, '-') << std::endl
              << "name"              << std::endl
              << std::string(5, '-') << std::endl;
}

然后你可以这样写:

std::cout << custom_output;

希望这能有所帮助!

你可以像其他答案所说的那样做。这是另一种方式:

class X
{
public:
    X(std::string const& _name) : name(_name) { }
    friend std::ostream& operator<<(std::ostream& os, const X& x)
private:
    std::string name;
};
std::ostream& operator<<(std::ostream& os, const X& x)
{
    return os << x.name;
}
int main()
{
    X x("Bob");
    std::cout << x; // "Bob"
}

自定义以供自己使用。