我希望它能够重载<< *** 作符,所以我可以这样做:
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认为’<<'不是班级的成员,但它是所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)