C认为’<<'不是班级的成员,但它是

C认为’<<'不是班级的成员,但它是,第1张

概述我必须编写一个简单的日志类,将输出写入文件. 我希望它能够重载<< *** 作符,所以我可以这样做: MyLog log("C:\\log.txt");log<<"Message"; 但是Visual C告诉我:“错误C2039:’<<' :不是'MyLog'的成员 我不知道我做错了什么. 这是代码: MyLog.h #pragma once#include <iostream>#include < 我必须编写一个简单的日志类,将输出写入文件.

我希望它能够重载<< *** 作符,所以我可以这样做:

MyLog log("C:\log.txt");log<<"Message";

但是Visual C告诉我:“错误C2039:’<<' :不是'MyLog'的成员 我不知道我做错了什么. 这是代码: MyLog.h

#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);};

MyLog.cpp

#include "MyLog.h"MyLog::MyLog(char* filename){    logfile.open(filename);}MyLog& MyLog::operator<<(MyLog& l,char*msg){    cout<<msg;    return l;}

有谁知道什么是错的?

解决方法 你已经宣布了自由功能MyLog&运算符<<(MyLog& l,char * msg)成为MyLog类的朋友.它不是类本身的成员,所以你的函数定义应该从这开始:

MyLog& operator<<(MyLog& l,char* msg){   //...
总结

以上是内存溢出为你收集整理的C认为’<<'不是班级的成员,但它是全部内容,希望文章能够帮你解决C认为’<<'不是班级的成员,但它是所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1223139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存