char* is a "pointer to a non-const char".
const char* is a "pointer to a const char".
You can't assign a const char* to a char*, which is what the compiler is complaining about. So, you will have to either:
- change the
char* members to const char*:
class Data{
private:
const char* input_filename;
const char* csv_filename;
public:
Data(const char* in_filename, const char* out_csv = "output.csv");
};
#include "data.hpp"
Data::Data(const char* in_filename, const char* out_csv):
input_filename(in_filename), csv_filename(out_csv)
{}
- change the
char* members to std::string:
#include <string>
class Data{
private:
std::string input_filename;
std::string csv_filename;
public:
Data(const char* in_filename, const char* out_csv = "output.csv");
/* you can optionally change the constructor parameters to std::string, too...
Data(const std::string &in_filename, const std::string &out_csv = "output.csv");
*/
};
#include "data.hpp"
Data::Data(const char* in_filename, const char* out_csv):
input_filename(in_filename), csv_filename(out_csv)
{}
/* or:
Data::Data(const std::string &in_filename, const std::string &out_csv):
input_filename(in_filename), csv_filename(out_csv)
{}
*/