gpt4 book ai didi

c++ - 类(函数)作为流接收器

转载 作者:行者123 更新时间:2023-11-28 06:10:32 25 4
gpt4 key购买 nike

我想为静态类提供一个方法来通过流输入值。

代替:

MyClass::inputText("some text");
MyClass::inputText(std::to_string(123));

我想要:

MyClass << "some text";
MyClass << 123;

或更好的配置:

MyClass(config) << "some text";
MyClass(config) << 123;

在网上搜索,我只找到了如何将类作为参数而不是接收器来实现 << 和 >> 的教程。

谁能给我一个提示,怎么做?

最佳答案

使 MyClass 成为其他类的静态实例:

class MyClass_t {
template <typename T>
MyClass_t operator<<(T const& ) { ... }
};

static MyClass_t MyClass;

这样,您就可以随心所欲地使用它了:

MyClass << 123; // calls MyClass_t::operator<<(int const& )

使 MyClass(config) 工作可以通过多种方式进行。 MyClass 是一个函数,它接受一个配置并返回某个可流式处理的对象的实例。或者它是一个类,该表达式将创建一个临时对象,该临时对象将在行尾销毁(也许您可以利用它并让 ~MyClass() 做一些特别的事情)。

关于c++ - 类(函数)作为流接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31361617/

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