因此,我创建了一个名为Person的结构,其中包含一对getter函数,它返回在getter函数中使用它们之后声明的变量。当我这样做在一个单独的结构没有错误,但是现在有了这个代码:C++在变量前声明函数
struct Person
{
std::string name() const { return name; }
std::string address() const { return address; }
std::string name;
std::string address;
};
我得到这个错误:
IntelliSense: no suitable constructor exists to convert from "std::string() const" to "std::basic_string<char, std::char_traits<char>, std::allocator<char>>"
在另一个结构我有这个...
struct Sales_data
{
std::string isbn() const { return book_number; }
std::string book_number;
};
我没有得到任何错误。我哪里出了问题,以后如何避免这个问题?
在工作示例中,将'std :: string book_number;'更改为'std :: string isbn;' - 查看模式?反向应用这些知识来修复非工作代码。 – user2864740
谢谢你那美妙的OOOOOOOhh ......时刻。解决了这个问题。再次感谢! – Connor
[OT]:您可以通过const引用返回以避免复制(即'const std :: string&isbn()const {return book_number;}') – Jarod42