C++在变量之前声明函数

Con*_*nor 1 c++ struct

所以我正在创建一个名为Person的结构,其中包含几个getter函数,它返回在getter函数中使用后声明的变量.当我在一个单独的结构中执行此操作时没有错误,但现在使用此代码:

struct Person
{
    std::string name() const { return name; }
    std::string address() const { return address; }

    std::string name;
    std::string address;
};
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

IntelliSense: no suitable constructor exists to convert from "std::string () const" to "std::basic_string<char, std::char_traits<char>, std::allocator<char>>"
Run Code Online (Sandbox Code Playgroud)

在另一个结构中我有这个......

struct Sales_data
{
    std::string isbn() const { return book_number; }

    std::string book_number;
};
Run Code Online (Sandbox Code Playgroud)

我没有任何错误.我哪里出错了,以后如何避免这个问题呢?

Kay*_*Ess 5

问题是您在第一个示例中使用了与成员方法和成员变量相同的名称,但在第二个示例中使用了不同的名称.