C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C认为’<<'不是班级的成员,但它是大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须编写一个简单的日志类,将输出写入文件.

我希望它能够重载<<操作符,@R_391_9447@这样做:

@H_147_8@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);
};
@H_177_5@myLog.cpp

#include "MyLog.h"

MyLog::MyLog(char* fileName)
{
    logfile.open(fileName);
}

MyLog& MyLog::operator<<(MyLog& l,char*msg)
{
    cout<<msg;
    return l;
}

有谁知道什么是错的?

解决方法

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

@H_147_8@myLog& operator<<(MyLog& l,char* msg) { //...

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。