C++ 函数返回值声明为const的原因
2012-05-20 10:59
288 查看
其目的就是为了实现用户自定义类型与内置类型最大限度的保持一致性。
比如操作 a+b = c; 对于内置类型在编译时,会弹出不能对lvalue进行赋值的错误;然而对于用户自定义类型,比如class A{}; 当对A定义了形式为
A operator+(const A& lhs, const A& rhs){};的接口时,编译和连接过程不会出现内置类型弹出的错误。
解决办法就是给函数的返回值加上const标识,指定不能对函数的返回值进行赋值,如此一来,对于自定义类型,再进行a+b = c;操作时,编译过程也会报错。
在现实的编码中,可能谁也不会敲出a+b=c;这样的单纯语句,但是你不可能保证在你想表达if(a+b == c)时,却一时马虎写成了if(a+b = c),程序能够编译连接通过,但不是按你想要的逻辑运行,于是问题就出现了,这个问题应该再编译时期就被发现的。
比如操作 a+b = c; 对于内置类型在编译时,会弹出不能对lvalue进行赋值的错误;然而对于用户自定义类型,比如class A{}; 当对A定义了形式为
A operator+(const A& lhs, const A& rhs){};的接口时,编译和连接过程不会出现内置类型弹出的错误。
解决办法就是给函数的返回值加上const标识,指定不能对函数的返回值进行赋值,如此一来,对于自定义类型,再进行a+b = c;操作时,编译过程也会报错。
在现实的编码中,可能谁也不会敲出a+b=c;这样的单纯语句,但是你不可能保证在你想表达if(a+b == c)时,却一时马虎写成了if(a+b = c),程序能够编译连接通过,但不是按你想要的逻辑运行,于是问题就出现了,这个问题应该再编译时期就被发现的。
相关文章推荐
- C++ 函数返回值声明为const的原因
- C++静态成员函数不能声明为const、volatile、virtual的原因 与 C++的对象模型
- C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- 第02章 CORE C++_控制语句_选择_循环_分支_跳出_函数_声明_形参_返回值_重载_递归
- 【从C到C++学习笔记】引用/const引用/引用传递/引用作为函数返回值/引用和指针的区别
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- C++在函数声明时,后面跟个const的作用
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)(转)
- C++里的静态成员函数不能用const的原因
- C++中const修饰函数形参,函数,函数返回值
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- C++在函数声明时,后面跟个const是什么意思?
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 理解复杂的C/C++声明 const, typedef , 函数指针
- C++里的静态(static)成员函数(不能用const的原因+static在c++中的第五种含义)
- C++学习之const成员函数(函数声明后加const,或称常量成员函数)用法详解
- C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
- C++函数声明的时候后面加const