그래서 getter 함수에서 사용 된 후에 반환 변수가 선언 된 몇 개의 getter 함수가있는 Person이라는 구조체를 생성합니다. 내가 별도의 구조체에서이 작업을 수행 할 때이 코드와 지금이 오류 없지만 :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
멋진 OOO 주셔서 감사합니다. 오우 ... 순간. 문제를 해결했습니다. 다시 한 번 감사드립니다! – Connor
[OT] : 실제 문제의 원인을 설명하기 위해 복사를 피하기 위해 const 참조로 반환 할 수 있습니다 (예 :'const std :: string & isbn() const {return book_number;}') – Jarod42