为什么只有在原语的情况下才忽略函数返回类型上的类型限定符? 试图删除C++项目的警告时,我无法理解为什么第一个函数返回int给警告“警告:函数返回类型忽略了类型限定符”,但是第二个函数返回STD::String不给出这个警告? //first function const int getX() { int x =9; return x; } //second function const std::string getTemp() { std::string test = "Test.."; return test; }
基元类型上的为什么只有在原语的情况下才忽略函数返回类型上的类型限定符? 试图删除C++项目的警告时,我无法理解为什么第一个函数返回int给警告“警告:函数返回类型忽略了类型限定符”,但是第二个函数返回STD::String不给出这个警告? //first function const int getX() { int x =9; return x; } //second function const std::string getTemp() { std::string test = "Test.."; return test; },c++,C++,基元类型上的const对返回值没有影响,因为不能修改基元类型的右值 getX() = 5; // error, even if getX() returns a non-const int. 但是,对于类类型,const可以起到不同的作用: std::string s = getTemp().append("extra"); // error if getTemp() returns a `const std::string`, but valid // if getTemp()
const
对返回值没有影响,因为不能修改基元类型的右值
getX() = 5; // error, even if getX() returns a non-const int.
但是,对于类类型,const可以起到不同的作用:
std::string s = getTemp().append("extra");
// error if getTemp() returns a `const std::string`, but valid
// if getTemp() returns a non-const `std::string`.