总结:常量函数形参传递参数,保证参数在函数体里面不受修改。有时候,如果形参是指针形参或者引用形参,或者是字符数组,不想函数体对其进行修改,那么可以采用常量函数形参。
实例:
定义EObject类,该类有width和height两个属性,有4个函数对其进行读取和修改。
class EObject { public: EObject(void); ~EObject(void); int getWidth(){return this->width;} int getHeight(){return this->height;} void setWidth(int w){this->width = w;} void setHeight(int h){this->height = h;} private: int width; int height; };
#include "EObject.h" class Parameter { public: Parameter(void); ~Parameter(void); //正常的常量形参 void normalParameter(const int i); //const 在*左边的指针形参 void pointParameterL(const int* l); //cosnt 在*右边的指针形参 void pointParmaeterR(int* const r); //类引用形参 void classParmaeter(const EObject& obj); //const在*左边的类指针形参 void classParameterL(const EObject* obj); //const在*右边的类指针形参 void classParmaeterR(EObject* const obj); };
#include "Parameter.h" Parameter::Parameter(void) { } Parameter::~Parameter(void) { } void Parameter::normalParameter(const int i) { //i=10;//error C3892: “i”: 不能给常量赋值 } void Parameter::pointParameterL(const int* l) { //const在*的左边,代表指针所指内容不能被修改 //*l = 10;//error C3892: “l”: 不能给常量赋值 } void Parameter::pointParmaeterR(int* const r) { //const在*的右边,代表指针不能被修改 //r++;// error C3892: “r”: 不能给常量赋值 } void Parameter::classParmaeter(const EObject& obj) { //后续章节介绍 } void classParameterL(const EObject* obj) { //后续章节介绍 } void Parameter::classParmaeterR(EObject* const obj) { //const在*的右边,代表指针不能被修改 //obj = new EObject();//error C3892: “obj”: 不能给常量赋值 }
相关推荐
C++常量详解二(常量形参、常量返回值、常量成员函数) C++ 中的常量是指在编译期确定的值,它们不能被改变。在本篇文章中,我们将深入探讨 C++ 常量的三个方面:常量形参、常量返回值和常量成员函数。 1.常量形参...
这里的“函数类型”指的是函数返回值的类型,“形参列表”则指定了函数的参数列表。例如: ``` int (*f)(int x); // 定义了一个指向接受一个整型参数并返回整型值的函数的指针 double (*ptr)(double x); // 定义了一...
### C++中const用法总结 #### 一、引言 `const` 是 C++ 中一个非常重要的关键字,用于声明常量或指定某些实体不可被修改。熟练掌握 `const` 的使用方法对于编写高质量的 C++ 代码至关重要。本文将详细介绍 `const`...
以下是对C++中`const`用法的详细总结: 1. **const修饰普通变量和指针** 当`const`修饰普通变量时,变量的值在声明后不允许改变。例如: ```cpp const int nValue = 10; // nValue 的值不可变 ``` 对于指针,`...
C++中的`const`关键字是程序设计中极为重要的概念,用于声明常量或指定对象、指针、函数参数和返回值等的不变性。本文将深入解析`const`在C++中的各种用法,帮助初学者更好地理解并掌握这一关键特性。 ### 1. `...
在C++编程中,`const`关键字是一种非常重要的特性,用于定义常量、限制指针和引用的行为,以及约束函数的副作用。以下是`const`关键字的一些常见用法: 1. **定义常量**: `const`关键字可以用来声明常量,确保...
`const` 关键字在 C++ 中的应用非常广泛,不仅限于简单的常量定义,还包括了更复杂的指针类型定义、形参和返回值的限定以及 `const` 成员函数的使用等。正确理解和灵活运用 `const` 不仅能够提高代码的质量,还能...
Const 修饰符可以用于修饰函数的返回值和形参,例如 `int func() const;`。Const 修饰返回值主要用于操作符的重载。 七、Const 与 Define 宏定义的区别 Const 常量和 Define 宏定义是两种不同的定义常量的方式。...
当向一个函数传入指针时,该函数可以改变指针指向的实际对象,而在函数形参生命中把指针定义为 const 型时,函数中的代码无法修改传入指针指向的实际变量。 例如,`const char* p = "hello world";`,这里的指针 `p...
对象`aObj`被声明为常量,这意味着只有标记为`const`的成员函数可以被调用。 2. **修饰对象指针**: - **语法**: ```cpp const CLASS *objectPtr; ``` - **示例**: ```cpp const AAA *aObj = new AAA(); ...
当数组名或指向数组的指针作为函数参数时,形参实际上和形参是共用同一段内存空间的。因此,使用const修饰符可以防止函数修改数组的内容。例如,`void func(const int arr[])`,这里的const修饰符可以防止函数修改...
C++是一种强大的面向对象编程...总结来说,C++的这些核心概念包括构造函数、局部静态变量、常量、引用、指针与`const`的结合以及堆和拷贝构造函数。理解这些概念是深入学习C++的基础,有助于编写更加安全和高效的代码。
在调用函数的形参中用const关键字,可以防止传递的函数参数不被修改。例如: ```c int FindNum(const int array[], int num, int count) { int i; int flag = 1; for (i = 0; (i ) && flag; i++) { if (array[i]...
引用是已定义的变量的别名,引用的主要用途就是用作函数的形参。引用的定义必须在声明的时候初始化它,而指针可以不初始化。引用的特别之处是实参和引用参数的类型必须一致,否则C++将产生临时变量。 例如,double ...
1. 为了防止传递的函数参数不被修改,在调用函数的形参中用const关键字。 例如: ```c int FindNum(const int array[], int num, int count) { // ... } ``` 在这个例子中,编译器会把array[]当作常量数据的数组...
本文档总结了C++基础知识点,包括构造函数赋初值的特殊写法、命名空间、位运算符、switch语句、函数形参的默认值设置、函数重载、引用、指针、数组的内存分析、数组遍历的两种方法、选择排序和冒泡排序等。...
本文档为C++面向对象程序设计的复习大纲,涵盖了面向对象编程的基本概念、标准名字空间、Const的使用、内联函数、函数重载、函数模板等多个方面的知识点。 一、面向对象编程的基本概念 面向对象是一种新的软件工程...
在C++中,const常量和宏定义#define在功能上有相似之处,都可以用于定义常量。然而,const提供的是一种类型检查,而#define则只是简单的文本替换,因此const被认为是一种更安全的方式。 在函数重载中,const也可以...