我必须编写一个简单的日志类,它将输出写入文件。我希望它与重载 MyLog log("C:\\log.txt");log<<"Message";但是 Visual C++ 告诉我:“错误 C2039: '我不知道我做错了什么。这是代码:日志文件#pragma once#include <iostream>#include <conio.h>#include <fstream>using namespace std;class MyLog{private: ofstream logfile;public: MyLog(char* filename); friend MyLog& operator<<(MyLog& l,char*msg);};我的日志文件#include "MyLog.h"MyLog::MyLog(char* filename){ logfile.open(filename);}MyLog& MyLog::operator<<(MyLog& l,char*msg){ cout<<msg; return l;}有谁知道出了什么问题? 最佳答案 您已将自由函数 MyLog& operator<<(MyLog& l,char* msg) 声明为 friend 类的 MyLog。它不是类本身的成员,因此您对函数的定义应该从以下内容开始:MyLog& operator<<(MyLog& l,char* msg){ //...关于C++ 认为 '<<' 不是类的成员,但它是,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1475992/ 10-11 16:04