Passed by const reference in constructors C++
I'm learning POO, and I have this simple class: Class Person{ private: Std::string name; Std::string Id; Public: Person(std::string _name, std::string _id) :name(_name), id (_id) { } }; When I used a static analizer in this code, I got this: (Performance) function parameter '_name' should be passed by const reference. (Performance) function parameter '_id' should be passed by const reference. I'm still learning about POO and I don't understand why they should be passed by const reference, if I compile the class I don't have any problem, and if I implement the class it works fine, but I don't understand the notification of the static analyzer. I solved this just adding &_name, &_id, why do I need &, if without the & the class works fine? What is the meaning of that "performance" that I got?