請幫助我在構造函數中初始化「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