【发布时间】:2016-09-09 15:45:36
【问题描述】:
我需要我的程序执行以下操作之一:
- 从标准输入读取并写入标准输出
- 从给定文件读取并写入另一个给定文件
工作方式只在运行时确定。
这是我尝试过的
void runProgram(std::istream programIStream, std::ostream programOStream)
{
int x;
programIStream >> x; // Reading from program input stream
programOStream << "Writing to program output stream" << std::endl;
}
int main(int argc, char* argv[])
{
if(argc == 3)
{
std::ifstream ifs;
ifs.open(argv[1], std::ios::in);
std::ofstream ofs;
ofs.open(argv[2], std::ios::out);
runProgram(ifs, ofs);
}
else
{
runProgram(std::cin, std::cout);
}
return 0;
}
我认为继承会处理所有事情,但这不起作用。
什么是做我需要的正确方法?
【问题讨论】:
-
您需要通过引用传递:
void runProgram(std::istream& programIStream, std::ostream& programOStream) -
搜索:对象切片。
-
@NathanOliver,这解决了它。谢谢