成员函数const(c++中关于const的问题)

:暂无数据 2026-09-25 10:30:07 :0

成员函数const(c++中关于const的问题)

本篇文章给大家谈谈成员函数const,以及c++中关于const的问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

c++中关于const的问题

使用const限定的成员函数不能改变类的成员变量的值,主要是为了保护成员变量不在该函数中被更改。
例如,有一个成员变量int
a,获得成员变量a的函数
int
void
get_a()const;
这里const表示get_a这个函数不能够更改类的成员变量的值,但是可以使用,所以这时如果get_a的实现是:
int
void
get_a()
{
return
a;
}
这样就不会出错,而如果是:
int
void
get_a()
{
a=1;
return
a;
}
这样就会报错,因为函数改变了成员变量的值。
const限定函数的作用是在大型工程中保证封装性,不能随意暴露成员变量,成员变量的更改必须保证在特定函数,使用特定方法,只有这样,才能保证软件的安全性。

const类型的成员函数内部如何改变成员变量

通过指针也能实现。在C++中,由const修饰的成员函数的函数体内部,是不能够对成员变量进行修改的。这个特性被用来保证某些成员函数在实现过程中,避免由于程序员大意而对数据进行了错误的修改;同时也说明此成员函数是非修改性的。如只需要返回成员变量的成员函数就被声明为const类型(const的位置在函数定义参数列表之后)推广开来,在const成员函数中也不能够调用非const的成员函数。这是因为非const成员函数可能会改变成员变量的值,这与const成员函数的定义相违背。但是在某些情况下,需要在const函数中改变成员变量。这就需要把成员变量设置成mutable类型。如class C{public:void func(const int& p) const{i = p;}private:mutable int i;};如果变量i不声明为mutable类型,则编译不会通过。如果成员变量是一个类类型或者结构类型,而在const函数中调用这些变量的成员函数,除了用mutable声明外,还可以用一种变通的方法:class D{public:void op(){}}class C{public:void func(const int& p, D& d) const{i = p;d.op();}private:mutable int i;D cd;};然后在调用时,参数D& d以*this作为输入,也可以达到调用非const函数的作用。P.S 最近阅读相关的文章,又学到了一种方法,能够使得在const成员函数中调用非const成员函数。就是使用const_cast《运算符。它能够使得const去掉const的属性,使得violate属性去掉violate属性。上面的例子就可以写成。

关于成员函数const到此分享完毕,希望能帮助到您。

成员函数const(c++中关于const的问题)

本文编辑:admin

更多文章:


placeholder函数(angular2失去焦点函数怎么写)

placeholder函数(angular2失去焦点函数怎么写)

大家好,如果您还对placeholder函数不太了解,没有关系,今天就由本站为大家分享placeholder函数的知识,包括angular2失去焦点函数怎么写的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月25日 11:20

成员函数const(c++中关于const的问题)

成员函数const(c++中关于const的问题)

本篇文章给大家谈谈成员函数const,以及c++中关于const的问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月25日 10:30

编程是学的什么(学习编程,到底是在学习什么)

编程是学的什么(学习编程,到底是在学习什么)

大家好,今天小编来为大家解答以下的问题,关于编程是学的什么,学习编程,到底是在学习什么这个很多人还不知道,现在让我们一起来看看吧!

2026年9月25日 09:00

frighten的用法与搭配(关于frighten,fear,afraid,scared这4个单词的用法)

frighten的用法与搭配(关于frighten,fear,afraid,scared这4个单词的用法)

其实frighten的用法与搭配的问题并不复杂,但是又很多的朋友都不太了解关于frighten,fear,afraid,scared这4个单词的用法,因此呢,今天小编就来为大家分享frighten的用法与搭配的一些知识,希望可以帮助到大家,

2026年9月25日 08:30

goto语句对程序的什么有很大的破坏作用(c语言初学者,试用goto语句出现问题,求解释)

goto语句对程序的什么有很大的破坏作用(c语言初学者,试用goto语句出现问题,求解释)

本篇文章给大家谈谈goto语句对程序的什么有很大的破坏作用,以及c语言初学者,试用goto语句出现问题,求解释对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收

2026年9月25日 08:20

站长素材iphone音效(有没有什么网站有免费的背景音乐,音效下载的网站,不要百度一搜前面那几个,那几个都看过了,没合适的)

站长素材iphone音效(有没有什么网站有免费的背景音乐,音效下载的网站,不要百度一搜前面那几个,那几个都看过了,没合适的)

今天给各位分享有没有什么网站有免费的背景音乐,音效下载的网站,不要百度一搜前面那几个,那几个都看过了,没合适的的知识,其中也会对有没有什么网站有免费的背景音乐,音效下载的网站,不要百度一搜前面那几个,那几个都看过了,没合适的进行解释,如果能

2026年9月25日 08:10

单片机c语言简单程序(编写简单的单片机c语言程序 1、指定数组找最大值 2、排序)

单片机c语言简单程序(编写简单的单片机c语言程序 1、指定数组找最大值 2、排序)

各位老铁们好,相信很多人对单片机c语言简单程序都不是特别的了解,因此呢,今天就来为大家分享下关于单片机c语言简单程序以及编写简单的单片机c语言程序 1、指定数组找最大值 2、排序的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看

2026年9月25日 07:00

霹雳布袋戏都有哪些(霹雳布袋戏顺序 霹雳布袋戏观看顺序是什么)

霹雳布袋戏都有哪些(霹雳布袋戏顺序 霹雳布袋戏观看顺序是什么)

其实霹雳布袋戏都有哪些的问题并不复杂,但是又很多的朋友都不太了解霹雳布袋戏顺序 霹雳布袋戏观看顺序是什么,因此呢,今天小编就来为大家分享霹雳布袋戏都有哪些的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月25日 02:30

extend和extend的区别(expand与extend问题)

extend和extend的区别(expand与extend问题)

今天给各位分享expand与extend问题的知识,其中也会对expand与extend问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月25日 02:20

个人简历网页模板(高端个人简历模板)

个人简历网页模板(高端个人简历模板)

各位老铁们,大家好,今天由我来为大家分享个人简历网页模板,以及高端个人简历模板的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月25日 01:50

最近更新

成员函数const(c++中关于const的问题)
2026-09-25 10:30:07 浏览:0
热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
标签列表