字符串和引用返回类型 C++?

string & reference return type c++?

本文关键字:C++ 返回类型 引用 字符串      更新时间:2023-10-16

我的uml说getter方法getName的类型是字符串和常量(getName(): const string &)所以在我的 .h 文件中我写了

public:
std::string & getName() const;
private:
std::string name;

在我的.cpp文件中

string & Class::getName() const
{
return name;
}

当我尝试编译我的.cpp文件时,我收到一个错误,说:从类型const string {aka const std::basic_string<char>}的表达式初始化std::string& {aka std::basic_string<char>&}类型的引用无效

如果我尝试将返回值从名称更改为 &name,我仍然会收到错误。我不知道如何解决它。请帮忙。

您需要

返回一个const引用:

const std::string& getName() const;

否则,您将通过const方法授予对对象数据的非常量访问权限。

当你的成员函数被const时,它只能const访问成员变量。

因此,不能将name绑定到该函数中的非const引用。

您的返回类型必须为 const std::string&