why not use "const string& s" in function definition to avoid the calling of copy constructor of the string?