Прежде всего, вам нужно решить, будет ли ParamList владеть строкой или просто "знать об этом". То, как вы написали это, с string& my_string
, означает, что он просто имеет указатель на чужую строку. В этом случае для некоторых не является большой проблемой модифицировать строку, поскольку ParamList не владеет ею в первую очередь!
Если вы хотите, чтобы ParamList имел полную мастер-копию параметров (зависит от проблемы, которую вы пытаетесь решить), сделайте что-то вроде этого:
class ParamList{
public:
ParamList(const string& a_string); // do a strcpy in here.
const string& getString(); //returns my_string
void setString(const string& new_string); //do a strcpy here too.
private:
string my_string;
}
Обратите внимание, что, вероятно, лучше использовать функции set и get в любом случае, чем возвращать неконстантную ссылку, просто чтобы ParamList мог иметь немного больше контроля над тем, как его члены модифицируются.