【发布时间】:2021-05-06 04:27:42
【问题描述】:
我对 c++ 非常陌生,我正在为一个项目创建一个任务列表,当我尝试运行代码时,我不断在“TaskIO.cpp”中的两个静态函数上收到此错误。 save_tasks() 函数的目标是将任务数据写入单独的文件。 load_tasks() 函数的目标是读取同一文件中的任务。
//Filename: TaskIO.cpp
#include "TaskIO.hpp"
#include <string>
#include <fstream>
#include <vector>
#include <limits>
using namespace std;
//void save_tasks(const std::vector<Task>& tasks);
//vector<Task> load_task();
TaskIO::TaskIO(string filename) :
TaskReader(filename),
Task_Writer(filename)
{}
TaskReader::TaskReader(string filename_param){
filename = filename_param;
}
vector<Task> TaskReader::load_task(){
vector<Task> tasks;
Task task;
ifstream input_file(filename); //first error
if(input_file){
while (input_file >> task.task_name >> task.task_complete){
tasks.push_back(task);
}
input_file.close();
}
return tasks;
}
Task_Writer::Task_Writer(string filename_param){
filename = filename_param;
}
void Task_Writer::save_tasks(const vector<Task>& tasks){
ofstream output_file(filename); //second error
for(Task task : tasks){
output_file << task.task_name << '\t' << task.task_complete << '\n';
}
output_file.close();
}
//Filename: taskIO.hpp
#ifndef TaskIO_hpp
#define TaskIO_hpp
#include <string>
#include <vector>
#include <string>
#include <limits>
#include "Task.hpp"
using namespace std;
class Task_Writer {
private:
string filename;
public:
Task_Writer(string filename = "");
static void save_tasks(const std::vector<Task>& tasks);
};
class TaskReader {
private:
string filename;
public:
TaskReader(string filename = "tasks.txt");
static vector<Task> load_task();
};
class TaskIO : public TaskReader, public Task_Writer
{
public:
TaskIO(string filename = "tasks.txt");
};
#endif /* TaskIO_hpp */
【问题讨论】:
-
你读过哪些关于C++ programming的书?你可以使用GCC编译器吗?然后将其用作
g++ -Wall -Wextra -g!另见this C++ reference。顺便说一句,您可以将JSON 与JsonCPP 等库一起使用
标签: c++ static-functions