问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言问题,这些函数后边跟个const 啥意思 求解

发布网友 发布时间:2022-04-30 00:05

我来回答

3个回答

热心网友 时间:2022-06-26 18:46

const 限定符,它把一个对象转换成一个常量。

1.》》const与define。两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)
2.》》const与指针和引用。
(a)const与指针。
先来看看下面的几种定义:

intme;
constint*p1=&me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向
int*constp2=&me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。
constint*constp3=&me;//p3不可变,*p3也不可变,此时既不能用*p3来修改其值,也不能转向

(b)指针和引用的区别很简单,就是引用更简洁,更安全。因为引用声明时必须初始化。 引用更接近const指针,一旦与某个变量关联,就将一直效忠于他。
(c)const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。
3.》》(a)const与函数。由于2(c),所以经常把函数的形参类型设为const,而且多为const 引用。但是这里有一个*,不能把不是左值的地址传递给引用。(左值包括变量,数组元素,结构成员,引用,被解除引用的指针等)。 形参是const类型的,说明该函数将不会修改其值,该函数便为const函数。
(b)const与类成员函数。先看看下面这段代码:

constStockland=Stock("hyd");
land.show();

land 是常量,但是类成员函数show无法保证不修改land,所以编译器将拒绝执行该段代码。除非你能保证show像const函数一样,但这需要另外一种语法,即:
void show() const; //声明
void Stock::show() const{} //定义

热心网友 时间:2022-06-26 18:46

void function() const{}
回到顶部
void function() const{}
通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?
看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误

// test1107.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class aa{
int num;
public:
aa(){
int b =10;
num = b;
};
void out1(){
cout<<num<<endl;
}
void out2() const{
cout<<num<<endl;
}
void out3() const{
num+=10; //出错,const函数不能修改其数据成员
cout<<num<<endl;
}

};
int _tmain(int argc, _TCHAR* argv[])
{
aa a1;
a1.out1();
a1.out2();
a1.out3();
const aa a2;
a2.out1(); // 错误,const的成员 不能访问非const的函数
a2.out2();
a2.out3();
return 0;
}

在类成员函数的声明和定义中,
const的函数不能对其数据成员进行修改操作。
const的对象,不能引用非const的成员函数。

这儿的const就是说这个函数操作不会对变量或是对象之类的值有影响 比如、有一个human类 ,现在要得到某个human类对象A的age 那么肯定是不会因为想得到这个值而改变了age的大小,那么就可以写一个函数int getAge()const这样就好 这么做是为了防止在函数中对不应该在这里改变的量不小心进行了改变

热心网友 时间:2022-06-26 18:47

常成员函数..........不造嚒
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 我小孩才三个多月,老婆要跟我离婚,用法律来解决小孩归谁? 什么是const c语言中const 是什么意思? 我和老婆结婚十三年了,有三个孩子,今年要和我离婚,我能挽回他吗,如果她有外遇了呢? 华为b593s 850终端如何连接一部无线路由器? 孩子三个了老婆有精神病可以离婚吗 华为无线路由器b593s_850亮红灯什么意思 现在都参加工作了,还时常会做梦梦到在学校考试。我上 学时学习挺好的,前十名总是有的。可做的梦里我 梦见我上学了,而且考试成绩也很好 蛐蛐和蝈蝈有什么区别 蛐蛐能斗 蝈蝈能斗么 他们会斗死么 华为b593slte无线路由器频段是多少 蓝色沙发配什么颜色家具 C语言中的const是神魔意思? 各位,这是什么虫子?咬人吗?怎么消灭它?生长在什么环境下?求详细解答! 蓝沙发配什么颜色的垫子? 我国《供配电系统设计规范》将用电负荷分为( )负荷。 海港蓝沙发配什么颜色的家具好看 联通卡手机收不到验证码如何办? 富通鑫茂为什么10大股东持股比例这么小? 薄荷蓝沙发能与什么色搭配 c语言答疑 const 啥意思 感觉有他没他结果都一样? 我有3个孩子了 可是我和我老婆没有感情 总是吵架 想离婚不知道可以吗 C语言函数返回值为 const 型 有什么意义 我和老婆没有结婚证,有三个孩子了她想要离婚怎么办 手机号和都不用了,如何找回健康通行码? C语言中的*const什么意思? 两个人同居在一起生了三个小孩现在女方要离婚,男方不愿意,女方被外家押回,同睡一张床女方方特别痛苦? c语言中const修饰的到底是常量还是变量? 老婆二年不回家了我想和她离婚小孩三个一个我也不想给她可以吗? 山东电子健康通行码在旧手机上有,新手机怎么办? 换手机了怎样把健康通行码弄到新手机上? 轻钢龙骨国家标准是多厚 轻钢龙骨国家标准是什么? 女性白带异常怎么回事?日常怎样护理? 外星人的哪款台式机比较推荐? 轻钢龙骨分为国标和非标,请问国标的规范尺寸是多少?各个龙骨的尺寸比如:50*10*5厚,谁有国家规范的? 安庆女性白带异常怎么办? 外星人台式机R13和R14哪个好?平面设计给推荐一下? 女性白带异常 煎香椿嫩芽的家常做法大全怎么做好