Один из способов, которым вы можете передать свою строку в вашу функцию, - это иметь вашу строку
std::string name;
в качестве элемента данных вашего объекта.А затем, в функции f()
создайте строку, как вы это сделали, и передайте ее по ссылке, как вы показали
void f( const std::string & parameter_name ) {
name = parameter_name;
}
Теперь, чтобы скопировать строку в char *, вы можете передать ее в функциюв качестве ссылки на символ:
Из этой ссылки :
Если вы хотите получить доступную для записи копию, такую как str.c_str()
, например, char *, вы можете сделать это с помощью этой:
std::string str;
char * writable = new char[str.size() + 1];
std::copy(str.begin(), str.end(), writable);
writable[str.size()] = '\0'; // don't forget the terminating 0
// don't forget to free the string after finished using it
delete[] writable;
Вышеуказанное не является безопасным для исключения!
Затем вы можете передать char * writable
в вашу функцию f()
по ссылке.