C++中如何在实现文件正确编写vector<string>的const引用Getter?
解决Getter方法的编译错误问题
你的编译错误是因为类作用域解析符Midia::的位置错误,它不能插在返回类型的const修饰符中间。
正确的实现写法(两种等价形式)
形式1:和头文件签名完全对应
vector<string> const &Midia::getKeywords() const { return this->keywords; }
形式2:更常用的写法(const前置)
const vector<string>& Midia::getKeywords() const { return this->keywords; }
错误原因解释
你原来的写法把Midia::放在了vector<string>和const &之间,编译器会将Midia:: const视为无效语法——作用域解析符后面必须紧跟函数名或类成员名,不能直接跟const修饰符。只要把Midia::移到完整的返回类型之后、函数名之前,就能解决这个编译错误。
内容的提问来源于stack exchange,提问作者HaveMercy
相关产品推荐
相关产品推荐

