因此,我創建了一個名爲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