Tôi có một lớp bằng C++ để viết các tệp nhật ký cho một ứng dụng của tôi. Tôi đã xây dựng lớp và nó hoạt động, nó là một cái gì đó như thế này:Quản lý luồng đăng nhập bằng C++ theo ký hiệu cout giống như
class Logger {
std::string _filename;
public:
void print(std::string tobeprinted);
}
Vâng, rõ ràng là độ, để in một dòng trong file log, cho một đối tượng của Logger, nó chỉ đơn giản là cần phải làm như sau:
Logger mylogger("myfile.log");
mylogger.print(std::string("This is a log line"));
Vâng. Sử dụng phương pháp tiếp cận phương pháp không giống như sử dụng mẫu tốt hơn nhiều như < <. Tôi muốn thực hiện những việc sau:
Đó là tất cả. Tôi cho rằng tôi phải nạp chồng toán tử < < ... Nhưng quá tải sử dụng chữ ký này (một trong những cổ điển):
ostream& operator<<(ostream& output, const MyObj& o);
Nhưng tôi không có một ostream ... Vì vậy, tôi nên làm như sau?
Logger& operator<<(Logger& output, const std::string& o);
Đây có phải là cách phù hợp không? Cảm ơn
Chức năng nào bạn muốn cung cấp không nằm trong 'std :: ofstream'? –
Tôi đã có tất cả các chức năng trong lớp đăng nhập của mình, ở đây tôi chỉ cần một cách để làm cho mọi thứ trở nên C++ giống như sử dụng toán tử <<. – Andry
Và bạn đang cung cấp những chức năng nào? –