C++中const什么意思?
在标准C++中,这样定义的是一个常量,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。const使用(类型):1、用于指针的两种情况:const是一个左结合的类型修饰符.int const*A;//A可变,*A不可变int*const A;//A不可变,*A可变2、限定函数的传递值参数:void function(const int Var);//传递过来的参数在函数内不可以改变.3、限定函数返回值型.const int function();//此时const无意义const myclassname function();//函数返回自定义类型myclassname.4、限定函数类型.void function()const;//常成员函数,常成员函数是不能改变成员变量值的函数。扩展资料:总结:1、指针本身是常量不可变(char*) const pContent;const (char*) pContent;2、指针所指向的内容是常量不可变const (char) *pContent;(char) const *pContent;3、 两者都不可变const char* const pContent;4、其中区别方法:沿着*号划一条线,如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。5、const修饰函数参数const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好void function(const int Var); //传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)void function(const char* Var); //参数指针所指内容为常量不可变void function(char* const Var); //参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)参数为引用,为了增加效率同时防止修改。6、修饰引用参数时:void function(const Class& Var);//引用参数在函数内不可以改变void function(const TYPE& Var); //引用参数在函数内为常量不可变7、const 修饰函数返回值const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。(2) const int * fun2() 8、调用时 const int *参考资料:百度百科——CONST(C中的CONST)
函数后面加constant是什么意思呀
首先,是加const不是constant。
函数后面加const是表明这个函数不会更改class的状态,即class内各成员变量的值。编译器如果发现某个const函数里改变了成员变量的值会报错。比如下面这个例子。
struct A {
int i;
void set(int v) {i = v;} //不能加const,因为i值改变了。
int value() const {return i;} //正确,i值没有改变。
int value2() const {return i++;} //错误,因为i值改变了。必须将const去掉。
};
如果函数比较复杂时,比如并不直接改变某个值,但是调用了其它函数,编译器怎么判断函数是否const呢。可以看下面的例子。
struct B {
A a; //B里包含一个A类成员。
int func1() const {return a.value();} //正确,所调用的a.value()也是一个const函数。
int func2() const {return a.value2();} //错误,a.value2()不是const函数。
};
也就是说,在const函数里只能调用成员的const函数以保证成员状态不会改变。
所以,在设计类的函数里,区别const和非const函数并标记出来是个好习惯,既保证自己不会对类误操作,也可以明示别人调用你的类里哪些会改变类状态。