在下面的类中,
speak()
返回 const char*
而不是 std::string
,这样做有什么好处或原因吗?class Animal
{
protected:
std::string m_name;
Animal(std::string name)
: m_name(name)
{
}
public:
std::string getName() { return m_name; }
const char* speak() { return "???"; }
};
const char*
。例如,通过 MPI 库发送字符串。 - Daniel Langrstd::string
,则永远不要返回const char*
。返回const std::string&
,并让调用者决定是否需要该const std::string&
或从中派生的const char*
。 - Galik