关于在函数前加const 和成员函数后加const 的记录
2017-03-24 19:56
411 查看
先说第一个问题吧。就是在函数前加一个const,一般人都会说返回值是常量。这是肯定的,但是有一个问题是值得深思的。这有什么卵用呢?一般我们调用函数之后返回值都是右值,所以说返回一个常量没有什么意义是有一定道理的。例如:
那么这么调用的时候就没有什么卵用啊,因为函数的返回值只是一个临时变量。赋值给x之后就回收了,它是否是常量貌似没有什么意义呀。我想了一下我觉得存在即合理,我想到了一种比较有用的调用方式。如果返回值是一个指针呢?那么意义是否就值得去思考了呢?
这个示例是不是就有意义了,当需要一个指针常量时这个函数就有用。
在函数后面加一个const必须是成员函数。表示在该函数体中不能修改成员变量,只能够应用。const 对象只能调用const成员函数。(cosnt对象不能调用非const成员函数)。
const int get() { int x = 9; return x; } // main body; auto x = get();
那么这么调用的时候就没有什么卵用啊,因为函数的返回值只是一个临时变量。赋值给x之后就回收了,它是否是常量貌似没有什么意义呀。我想了一下我觉得存在即合理,我想到了一种比较有用的调用方式。如果返回值是一个指针呢?那么意义是否就值得去思考了呢?
const int* get() { auto x = new int(9); return x; } auto x = get(); *x = 10; // This is a great error, because const variance mustn’t change. delete x;
这个示例是不是就有意义了,当需要一个指针常量时这个函数就有用。
在函数后面加一个const必须是成员函数。表示在该函数体中不能修改成员变量,只能够应用。const 对象只能调用const成员函数。(cosnt对象不能调用非const成员函数)。
相关文章推荐
- 关于 const 成员函数
- 关于 类成员函数返回指向const临时变量的引用
- 关于C++的右值、const引用、右值引用、const成员函数及相关扩展
- 关于 const 成员函数
- C++关于类成员函数在参数列表后加const的作用,以及使用条件
- 关于QML中调用qt类中的信号,槽,成员函数,属性做记录
- 拷贝构造函数,深拷贝,大约delete和default相关业务,explicit,给定初始类,构造函数和析构函数,成员函数和内联函数,关于记忆储存,默认参数,静态功能和正常功能,const功能,朋友
- 关于常量成员函数(const member function)
- 关于类成员函数结尾带const和不带const的问题
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- 关于const成员函数
- [转载]关于const用法的 笔记记录
- const成员函数使用规则
- 关于string的成员函数substr
- 关于成员函数的Command模式的简单实现
- const成员函数和非const成员函数返回引用的问题
- 用 const 限定类的成员函数
- 有关static成员函数不能用const修饰的问题
- const成员函数
- 类成员函数后带const