Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么只有在原语的情况下才忽略函数返回类型上的类型限定符? 试图删除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++ - Fatal编程技术网

为什么只有在原语的情况下才忽略函数返回类型上的类型限定符? 试图删除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`.