C++ 使用带有ifstream类成员的getline

C++ 使用带有ifstream类成员的getline,c++,C++,编译器错误为: 调用“getline(const ifstream&,std::string&)”时没有匹配的函数。 StartScreen.h #包括 #包括 #包括“Screen.h” 类StartScreen:公共屏幕{ 公众: StartScreen(); 虚拟~StartScreen(); 无效常数; void draw()常量; 私人: StartScreen(const StartScreen&)=删除; StartScreen&运算符=(const StartScreen&)=删

编译器错误为:

调用“getline(const ifstream&,std::string&)”时没有匹配的函数。

StartScreen.h

#包括
#包括
#包括“Screen.h”
类StartScreen:公共屏幕{
公众:
StartScreen();
虚拟~StartScreen();
无效常数;
void draw()常量;
私人:
StartScreen(const StartScreen&)=删除;
StartScreen&运算符=(const StartScreen&)=删除;
std::ifstream屏幕\u内容\u;
};
StartScreen.cpp

#包括“StartScreen.h”
StartScreen::StartScreen(){
屏幕内容打开(“start screen.txt”);
}
StartScreen::~StartScreen(){
屏幕内容关闭();
}
void StartScreen::advice()常量{
}
void StartScreen::draw()常量{
std::字符串行;
如果(屏幕内容打开()){
while(screen\u content\uu.eof()){
std::getline(屏幕内容行);
}
}
}

我的想法是以标准输出打印文本文件中的所有行。使用fstream是正确的方法吗?或者有更好的解决方案?

正如上面的评论所说,
draw()
的问题被声明为const

在常量成员函数中,所有成员变量都被视为常量

从流读取会改变流对象(它必须填充流缓冲区并更新流位置),因此不能在常量流上执行此操作


要么将
draw()
设为非常量,要么将
screen\u内容
设为可变。

如上所述,
draw()
的问题声明为常量

在常量成员函数中,所有成员变量都被视为常量

从流读取会改变流对象(它必须填充流缓冲区并更新流位置),因此不能在常量流上执行此操作


要么将
draw()
设为非常量,要么将
screen\u内容
设为可变。

如上所述,
draw()
的问题声明为常量

在常量成员函数中,所有成员变量都被视为常量

从流读取会改变流对象(它必须填充流缓冲区并更新流位置),因此不能在常量流上执行此操作


要么将
draw()
设为非常量,要么将
screen\u内容
设为可变。

如上所述,
draw()
的问题声明为常量

在常量成员函数中,所有成员变量都被视为常量

从流读取会改变流对象(它必须填充流缓冲区并更新流位置),因此不能在常量流上执行此操作


要么使
draw()
非常量,要么使
screen\u内容
可变。

因为
draw()
被声明为
const
screen\u内容
也是
const
,而
getline
将非
常量
ifstream作为其第一个参数。通过
ifstream
的一个非
const
实例,您就可以了。@Captain请回答这个问题。是的@Bledson“完成”了什么?从
draw()声明中删除了
const
。正如建议的那样,将
屏幕内容
声明为
可变
也起作用。因为
draw()
被声明为
const
屏幕内容
也是
const
,而
getline
将非
const
ifstream
作为其第一个参数。通过
ifstream
的一个非
const
实例,您就可以了。@Captain请回答这个问题。是的@Bledson“完成”了什么?从
draw()声明中删除了
const
。正如建议的那样,将
屏幕内容
声明为
可变
也起作用。因为
draw()
被声明为
const
屏幕内容
也是
const
,而
getline
将非
const
ifstream
作为其第一个参数。通过
ifstream
的一个非
const
实例,您就可以了。@Captain请回答这个问题。是的@Bledson“完成”了什么?从
draw()声明中删除了
const
。正如建议的那样,将
屏幕内容
声明为
可变
也起作用。因为
draw()
被声明为
const
屏幕内容
也是
const
,而
getline
将非
const
ifstream
作为其第一个参数。通过
ifstream
的一个非
const
实例,您就可以了。@Captain请回答这个问题。是的@Bledson“完成”了什么?从
draw()声明中删除了
const
。正如建议的那样,将
屏幕内容
声明为
可变
也起作用。