C++ const的各种用法详解

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技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • lunc币怎么获得?lunc币怎么买?

    如果你想获得LUNC币,可以通过以下方式: 1. 购买LUNC币 你可以在以下交易平台上购买LUNC币: 火币网 币安 OKEx Gate.io 在购买LUNC币之前,你需要先注册并完成身份认证,这通常需要一些时间。一旦你完成了认证,你可以使用BTC、ETH、USDT等数字货币交换LUNC币。请注意检查交易所的手续费率、存款和提款条件。 例如,你可以使用10…

    C 2023年5月22日
    00
  • Objects are not valid as a React child报错解决

    当你在使用 React 开发过程中,如果你尝试将一个对象作为 React 的子组件渲染时,可能会遇到“Objects are not valid as a React child”这个报错。这个错误的具体原因是,React 组件需要接收一个合法的数据类型作为props传入,而对象并不是一个合法的数据类型。 那么如何解决“Objects are not val…

    C 2023年5月23日
    00
  • 实例解析iOS应用多线程开发中NSthread类的用法

    实例解析iOS应用多线程开发中NSthread类的用法 简介 在 iOS 应用的多线程开发中,NSthread 是一种常用的线程处理方式。本攻略旨在讲解 iOS 应用中如何使用 NSthread 类,以实现线程处理。在本攻略中,我们将包含以下内容: NSthread 基本用法 线程间通信的实现方法 两个 NSthread 实例示例说明 NSthread 基本…

    C 2023年5月22日
    00
  • 荣耀畅玩7c怎么打开游戏模式?荣耀畅玩7c打开游戏模式教程

    下面是荣耀畅玩7c打开游戏模式的完整攻略,包含了详细的步骤以及示例说明。 什么是游戏模式 游戏模式是一种手机功能,它能够优化手机性能,使得手机在运行游戏时更加流畅。荣耀畅玩7c也拥有游戏模式功能,用户可以通过打开游戏模式来获得更好的游戏体验。 如何打开游戏模式 荣耀畅玩7c打开游戏模式的步骤如下: 进入手机“设置”界面。 找到并点击“智能辅助”选项。 找到并…

    C 2023年5月23日
    00
  • win7系统开机屏幕显示0xcoooo428错误怎么办 解决方法介绍

    win7系统开机屏幕显示0xcoooo428错误怎么办 当你开机启动 Win7 时,出现 0xcoooo428 错误提示,显示计算机系统有异常,无法正常启动。那么该如何解决这个问题呢? 问题原因 0xcoooo428 错误常见于电脑开机时,操作系统加载失败。这通常与硬件设备驱动程序损坏或异常、系统文件缺失或损坏等有关。在确定问题原因后,我们可以采用以下方法来…

    C 2023年5月23日
    00
  • C语言函数多个返回值方式

    C语言函数多个返回值方式 在C语言中,函数通常只能返回一个返回值。这可能会限制一些操作的实现,特别是在需要返回多个值的情况下。然而,C语言提供了多种方式来解决这个问题。 方式一:结构体 一种实现方式是通过使用结构体返回多个值。结构体通常定义了相​​关字段,而每个字段都可以看作是一个返回值。 typedef struct { int a; char b; fl…

    C 2023年5月23日
    00
  • 详解如何用alpine镜像做一个最小的镜像并运行c++程序

    当我们需要构建一个最小化的镜像时,通常会选择使用Alpine镜像。Alpine是一个轻量级的Linux发行版,使用musl libc作为其C库以及busybox作为其Unix工具的集合。在开发环境中使用它可以减少不必要的依赖,从而得到一个精简的镜像。 下面是使用Alpine镜像构建最小化镜像并运行C++程序的详细攻略: 步骤一:准备工作 1. 安装Docke…

    C 2023年5月23日
    00
  • VC中控制台程序创建窗口的实例方法

    创建控制台程序的时候,需要手动创建一个窗口的实例,来显示程序的输出信息。下面是创建VC中控制台程序的窗口实例的完整攻略: 首先需要包含Windows API的头文件”Windows.h”,和”CRT”的头文件”Stdio.h”; #include <stdio.h> #include <Windows.h> 在控制台程序中,一般是通过…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部