C++ const的各种用法详解
1. const基本用法
在C++中,const关键字用于修饰变量或函数返回值,表示该变量或返回值是一个不可更改的常量。
定义一个const变量的语法形式如下:
const 数据类型 变量名 = 初始值;
例如,定义一个const整型变量a,初始值为10:
const int a = 10;
定义完后,a不能被再次修改。
函数返回值使用const的语法形式如下:
const 数据类型 函数名(参数列表)
{
//函数体
}
例如,定义一个返回值为const整型变量的函数:
const int getValue()
{
const int value = 10;
return value;
}
2. const指针
const指针是一个指针,指向的变量是不可更改的。
定义一个const指针的语法形式如下:
const 数据类型 *指针变量名 = &变量名;
例如,定义一个const整型指针指向整型变量a:
int a = 10;
const int *p = &a;
定义完后,指针p不能通过*p来修改a的值。
3. 指针const
指针const是一个指针,指向的地址是不可更改的。
定义一个指针const的语法形式如下:
数据类型 *const 指针变量名 = &变量名;
例如,定义一个整型指针const指向整型常量b:
const int b = 10;
int *const p = &b;
定义完后,p指针不能指向其他地址,但可以通过*p来读取b的值。
4. const引用
const引用是一个引用,代表一个不可改变的常量。
定义一个const引用的语法形式如下:
const 数据类型 &引用变量名 = 变量名;
例如,定义一个const整型引用引用整型变量c:
int c = 10;
const int &ref = c;
定义完后,ref引用不能通过ref来修改c的值。
5. const成员函数
定义一个const成员函数的语法形式如下:
class 类名
{
const 数据类型 函数名(参数列表) const
{
//函数体
}
};
例如,定义一个类A,其中的成员函数fun返回值为const整型常量:
class A
{
public:
A(int value) : m_value(value) {}
const int fun() const
{
return m_value;
}
private:
int m_value;
};
定义完后,类A的对象不能通过fun函数来修改m_value的值。
示例
例子1
下面是一个实现计算圆的面积和周长的程序:
#include<iostream>
using namespace std;
const double PI = 3.14159; //定义常量PI为3.14159
class Circle
{
public:
Circle(double r) : radius(r) {} //构造函数
double area() const //计算圆的面积的const成员函数
{
return PI * radius * radius;
}
double perimeter() const //计算圆的周长的const成员函数
{
return 2 * PI * radius;
}
private:
double radius; //私有成员变量
};
int main()
{
Circle c(2);
cout << "圆的面积:" << c.area() <<",周长:" << c.perimeter() << endl;
return 0;
}
输出结果:
圆的面积:12.5664,周长:12.5664
例子2
下面是一个实现交换两个变量的值的程序:
#include<iostream>
using namespace std;
void swap(int *const a, int *const b) //定义指针const交换函数
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a = 1, b = 2;
const int *p1 = &a; //定义const指针
int *const p2 = &b; //定义指针const
swap(p1, p2); //调用交换函数,因为p1是const指针,所以不能通过交换函数修改a的值
cout << "a的值是:" << a << ",b的值是:" << b << endl;
return 0;
}
输出结果:
a的值是:2,b的值是:1
以上就是C++ const的各种用法的详细讲解及示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ const的各种用法详解 - Python技术站