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)
{}
*/