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

如题所述

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{} //定义
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-28
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这样就好 这么做是为了防止在函数中对不应该在这里改变的量不小心进行了改变本回答被网友采纳
第2个回答  2014-10-16
常成员函数..........不造嚒

c语言问题,这些函数后边跟个const 啥意思 求解
(c)const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。3.》》(a)const与函数。由于2(c),所以经常把函数的形参类型设为const,而且多为const 引用。但是这里有一个限制,不能把不是左值的地址传递给引用...

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

c语言const是什么意思
在C语言中,const是一个关键字,表示常量的意思。本质上,const是用于限制一个变量的值不可更改的。在定义变量时,可以使用const关键字将其定义为常量,一旦定义完成之后,便无法修改其值。这种做法可以避免因意外错误而修改了变量的值,从而导致程序出现不可预期的结果。const这个关键字在C语言中起到的作...

c语言中const 是什么意思?
在C语言中,const关键字扮演着重要角色,它的含义是定义一个不可变的量,确保其在程序执行过程中保持不变。比如,声明const int Max=100;时,试图对Max进行自增操作会导致编译错误,因为它的值是固定的。这种特性有助于类型检查,提高代码的可读性和安全性,例如函数参数如const int i,编译器会明确提...

c语言中const是什么意思?
C语言中,const表示常量的关键字。下面详细解释const在C语言中的含义和用法:一、const的基本含义 在C语言中,const关键字用于声明一个常量,即一个值不可改变的量。一旦一个变量被const修饰,它的值就不能再被修改。这样的变量通常在编译时就确定了其值,并且在程序运行的整个生命周期内保持不变。二...

const是什么意思
const是C++中的CONST函数,作用为把一个对象转换成一个常量。const的用法:1、常变量 变量用const修饰,其值不得被改变。任何改变此变量的代码都会产生编译错误。Const加在数据类型前后均可。2、常指针 const跟指针一起使用的时候有两种方法。const可用来限制指针不可变。也就是说指针指向的内存地址不...

c语言中const 是什么意思,怎么用,什么时候用?
以这个为例const int i=100;这表示i的值不能被改变,也就是常变量,如果你在程序中再给i赋值,比如i=200;这就会报错。也可用在函数上,格式:int sort(int ,int) const{} 用处:让不想改变的变量不被无意或有意的改变。。。

C语言中const的用法详解
char *destin)`,source为只读输入,destin为可写输出。函数返回值加const,如`const char* getConstString() const`,表示返回的指针内容不可修改。总结,const在C语言中发挥着关键作用,它确保了代码的可读性和稳定性,减少了潜在的错误。深入理解并恰当地使用const,是编写高效、安全代码的重要部分。

c语言中const 是什么意思?
(1)可以定义const常量,具有不可变性。例如:const int Max=100; Max++会产生错误;(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { ...} 编译器就会知道i是一个常量,不允许修改;(3)可以避免意义模糊的数字出现,同样可以很方便地进行...

QT C语言关于const的小问题
这是c++中的const,和c不同 函数形参表后的const表示这个成员函数是“常函数”常函数的意思就是在其被调用的期间能向调用者保证不修改对象内部数据的值 比如以下情况 void foo(const obj& a) { a.bar(); } 如果成员函数bar不是常函数,这里就会编译失败 ...

相似回答