Error C2678: binary ‘<<‘ : no operator found which takes a left-hand operand of type ‘const std::ofstream’ (or there is no acceptable conversion)
我搜索过这个问题,发现了许多解决方案,即有一些建议:
>使用#include< string>
>使用#include< iostream>
>使用#include< istream>
我得到的一些其他信息是关于何时发生此错误.但我所得到的并不能解决我的问题.请看看我的代码:
CGroupComboBox.h:
private: std::ofstream fptr;
CGroupComboBox.cpp:
//ConstructorCGroupComboBox::CGroupComboBox() : m_dropdownListautoWIDth(true),m_autocomplete(true),m_selectionUndobyEscKey(true){ fptr.open("test.txt",std::ios::out); //Initialization of fptr}//Member Functionint CGroupComboBox::FindString(int nStartAfter,LPCTSTR lpszString) const{ fptr<<"I am FindString.\n"; //Trying to write something //Other Code}//DestructorCGroupComboBox::~CGroupComboBox(){ //Other Code fptr.close();}
我在这做错了什么?
解决方法 您使用限定符const声明了此成员函数int CGroupComboBox::FindString(int nStartAfter,LPCTSTR lpszString) const ^^^^^
因此,在这种情况下,它具有类型const CGroupComboBox *,您可能不会更改此指向的对象的数据成员.
不过这句话
fptr<<"I am FindString.\n"; //Trying to write something
需要非const数据成员fptr.
所以编译器发出错误.
解决方案之一是对数据成员fptr使用说明符可变
总结以上是内存溢出为你收集整理的c – 错误C2678:二进制’<<':找不到运算符,它接受类型为'const std :: ofstream'的左手 *** 作数(或者没有可接受的转换)全部内容,希望文章能够帮你解决c – 错误C2678:二进制’<<':找不到运算符,它接受类型为'const std :: ofstream'的左手 *** 作数(或者没有可接受的转换)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)