成员函数后面加const(C++在函数声明时,后面跟个const是什么意思)

本文目录
- C++在函数声明时,后面跟个const是什么意思
- c++中Const 用法什么时候需要用const Const放在类成员函数后有什么用 Con
- c++中的类成员函数后面的const是什么意思
- const(一):(转) 一个函数名后面加const表示什么意思
- 在类的成员函数后面加 const 是什么意思
- const 放在函数后表示什么意思
- C++中函数名后跟个const表示什么意思
- Point getCircum() const 里的const加在函数后面是什么作用
C++在函数声明时,后面跟个const是什么意思
C++在函数声明时,后面跟个const是限定函数类型为常成员函数, 常成员函数是指不能改变成员变量值的函数。
例如“double d() const;”,其中的其中的“const”限定了d()函数中不能有任何改变其所属对象成员变量值的功能,如果有则会在编译阶段就报错。
它的主要作用就是能使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明。在需要增加可读性和减少逻辑出错的情况下,就可以用这种形式。
扩展资料:
简单介绍
一、const与define。两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内联函数(Inline)。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)
二、》》const与指针和引用。
1、const与指针。
先来看看下面的几种定义:
int me;
const int* p1 = &me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向
int* const p2 = &me;//p2不可变,*p2可变,此时允许*p2来修改其值,但是p2不能转向。
const int* const p3 = &me;//p3不可变,*p3也不可变,此时不能用*p3来修改其值。
2、指针和引用的区别很简单,就是引用更简洁,更安全。因为引用声明时必须初始化。 引用更接近const指针,一旦与某个变量关联,就将一直效忠于他。
3、const指针可以接受const和非const地址,但是非const指针只能接受非const地址。所以const指针的能力更强一些,所以尽量多用const指针,这是一种习惯。
c++中Const 用法什么时候需要用const Const放在类成员函数后有什么用 Con
C++中const用法很多,能完全用好const就能说明C++功底不错了。
1、const声明常量,不同于宏定义的是这样声明的常量是有数据类型的,这样编译器就会在编译前进行强制类型检查,尽量减少因数据类型不一致导致的程序错误。
2、参数使用const修饰,这种用法是表明并防止函数内部修改了入参,一般用在引用参数和指针参数。调用者不用担心入参被修改,函数实现者也无法修改该入参。
3、成员函数后面使用const修饰,这种用法表明并防止函数内部修改成员变量,即确保该函数不会修改内部数据成员,仅作为非数据相关的方法。
4、函数返回值前面使用const修饰,表明返回值不能被修改,一般也多用于返回引用或指针时,方式内部成员被外部非法篡改。
5、指针常量声明时的用法,const char* const p = NULL;第一个const限定指针内容不可修改,第二个const限定指针地址不可修改。
来个例子:
const string& MyClass::Example(const char* const pStr,string& strRes)const
{
...
}
c++中的类成员函数后面的const是什么意思
修饰类的成员函数,表示该函数不能修改对象数据成员的值。
并且const对象只能调用const成员函数。
const(一):(转) 一个函数名后面加const表示什么意思
const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误 在const函数中调用非const成员函数是语法错误 这是把整个函数修饰为const,意思是“函数体内不能对成员数据做任何改动”。如果你声明这个类的一个const实例,那么它就只能调用有const修饰的函数。 常成员函数 使用const关键字进行说明的成员函数,称为常成员函数。只有常成员函数才有资格操作常量或常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下: 《类型说明符》 《函数名》 (《参数表》) const; 其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。下面举一例子说明常成员函数的特征。 #include class R { public: R(int r1, int r2) { R1=r1; R2=r2; } void print(); void print() const; private: int R1, R2; }; void R::print() { cout《《R1《《R2《《endl; } void R::print() const { cout《《R1《《R2《《endl; } void main() { R a(5, 4); a.print(); const R b(20, 52); b.print(); } 该例子的输出结果为: 5,4 20;52 该程序的类声明了两个成员函数,其类型是不同的(其实就是重载成员函数)。
在类的成员函数后面加 const 是什么意思
每个类成员都有隐含的指向调用成员函数的类对象的this指针,成员函数形参表后的const修饰的是this,也就是
ClassName cn;
const ClassName *cp=&cn
这个this就相当于cp,是‘自认为’指向const对象的指针,因此该const成员函数不能对对象进行写操作
const 放在函数后表示什么意思
const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。
const 限定符,它把一个对象转换成一个常量。
举例:
为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:
class Point
{
public:
int GetX() const;
int GetY() const;
void SetPt (int, int);
void OffsetPt (int, int);
private:
int xVal, yVal;
};
const成员函数应该在函数原型说明和函数定义中都增加const限定:
int Point::GetY() const
{
return yVal;
}
class Set {
public:
Set (void){ card = 0; }
bool Member(const int) const;
void AddElem(const int);
};
bool Set::Member (const int elem) const
{
}
非常量成员函数不能被常量成员对象调用,因为它可能企图修改常量的数据成员:
const Set s;
s.AddElem(10); // 非法: AddElem不是常量成员函数
s.Member(10); // 正确
C++中函数名后跟个const表示什么意思
在成员函数中圆括号之后所带的关键字const表明,在该函数中不能改变类中的数据成员的值。带const的函数称为常量成员函数。下面就是个错误例子,说明const的作用:class a{int a;public:void disp() const{a=4};//a=4错误};
Point getCircum() const 里的const加在函数后面是什么作用
类的成员函数后面加
const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。
在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加
const,而对于改变数据成员的成员函数不能加
const。所以
const
关键字对成员函数的行为作了更加明确的限定:有
const
修饰的成员函数(指
const
放在函数参数表的后面,而不是在函数前面或者参数表内),只能读取数据成员,不能改变数据成员;没有
const
修饰的成员函数,对数据成员则是可读可写的。
在类的成员函数后面加
const
,则常量(即
const)对象可以调用
const
成员函数,而不能调用非const修饰的函数。正如非const类型的数据可以给const类型的变量赋值一样,反之则不成立。
对于const成员函数,"不能修改类的数据成员,不能在函数中调用其他不是const的函数",这是由const的属性决定的

更多文章:
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30
方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴
2026年9月22日 00:10
html document对象(载入浏览器的html文档都会成为document的对象吗)
2026年9月21日 16:00








