请帮助我在构造函数中初始化“out”?如何使用“char * filename”初始化构造函数中的“ostream&out”
class logger {
ostream &out;
public:
logger(char *str) : out(/*How do i construct an object using str*/) {}
template <typename T> void print(T &obj) { out << obj; }
};
这个类将在全球范围定义为他人只是调用打印方法
更新: 我计划有以下设置,其中类的用户可以 1)创建一个新的ostream对象,如果他没有一个。他可以创造,但他也必须管理它。所以不想提供该功能。 2)如果他已经有一个他可以像“cout/cerr”一样传递。 3)如果他没有通过“cerr”将被假定。
{
ostream &out;
public:
logger() : out(cerr) {}
logger(ostream &o) : out(o){}
logger(char *str) : out(/*How do i construct an object using str*/) {}
}
你究竟想要完成什么?您是否尝试创建连接到提供的文件名的输出流?例如。记录器l =新记录器(“foo.txt”);会创建一个ostream并打开“foo.txt”进行编写? –
是......“l”将在全球范围内提供...... – rakesh