C++ const的各种用法详解

yizhihongxing

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日

相关文章

  • C语言编程入门必背的示例代码整理大全

    您好,关于“C语言编程入门必背的示例代码整理大全”的完整攻略,以下是详细讲解: 概述 此文档旨在为初学者提供C语言编程入门示例代码整理大全,内容包括语法基础、数组指针、结构体等知识点。示例代码将以最简单易懂的方式呈现,并加入详细注释,以帮助初学者更好地理解和学习。 语法基础 Hello World #include <stdio.h> int m…

    C 2023年5月23日
    00
  • Python中常见的数据类型小结

    让我来为您详细讲解“Python中常见的数据类型小结”的攻略。 一、Python常见的数据类型 Python中常见的数据类型包括数字、字符串、列表、元组、字典和集合,下面分别详细介绍。 1. 数字(Number) 在Python中,数字可以分为整数(int)、浮点数(float)、布尔值(bool)和复数(complex)4种类型。在Python中,数字类型…

    C 2023年5月22日
    00
  • vue-cli使用stimulsoft.reports.js的详细教程

    下面是“vue-cli使用stimulsoft.reports.js的详细教程”的完整攻略,包含两个示例: 1. 环境准备 在开始之前,需要确认电脑已经安装了以下软件: Node.js npm Vue CLI 如果没有安装,可以到官网下载安装对应版本。安装完毕后,打开命令行工具,输入以下命令进行版本确认: node -v npm -v vue –versi…

    C 2023年5月23日
    00
  • JSON在Java中的使用方法实例

    下面是JSON在Java中的使用方法实例的详细攻略: 什么是JSON JSON是一种轻量级的数据交换格式,全称为JavaScript Object Notation。它是一种易于读写的文本格式,可与几乎所有编程语言一起使用,包括Java。 Java中的JSON库 Java中有多个库可以用于处理JSON,其中最流行的库是GSON和Jackson。这里我们以GS…

    C 2023年5月23日
    00
  • C++ 数据结构之水洼的数量算法

    C++ 数据结构之水洼的数量算法 问题描述 有一个矩阵区域,其中包含了若干个“水洼”,每个水洼是由相邻的“水滴”组成的区域。其中,相邻的“水滴”指的是上下左右四个方向上位置相邻的“.”,而不是斜对角线方向。 例如,下面的矩阵区域中,连续的“.”就构成了两个水洼: X . . X . X . . X . . X X . . . . . X . 现在,给定一个这…

    C 2023年5月22日
    00
  • C语言实现扫雷小游戏的全过程记录

    C语言实现扫雷小游戏的全过程记录 介绍 本文将详细记录如何使用C语言实现一个经典的扫雷小游戏。在本教程中,我们将使用C语言来编写简单的扫雷游戏,并跟随教程一步一步地实现游戏的各个部分。 步骤 1. 设计游戏界面 扫雷游戏需要一个游戏界面。在此步骤中,我们将设计游戏界面并将其绘制出来。可以设置游戏界面的大小、排列格子的方式、地雷的分布等。 2. 生成地雷分布 …

    C 2023年5月23日
    00
  • C语言用函数指针实现一个特别的计算器

    C语言用函数指针实现一个特别的计算器 1. 什么是函数指针 在C语言中,函数指针是指向函数的指针变量,也就是说,函数指针存储的是一个函数的地址。通过函数指针,我们可以直接调用该函数,就像调用普通变量一样,这样可以使程序更加灵活。 定义一个函数指针需要注意两点:- 函数指针的声明方式与普通指针有所不同,其声明格式为 返回类型 (*指针变量名)(参数列表);- …

    C 2023年5月23日
    00
  • C/C++ 恨透了 double free or corruption

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/IwSVImp5cOB3gZbaf0YiPw 写过 C/C++ 的都知道,内存允许程序员自主分配,用完了这些资源也得释放出来,这种在系统运行过程中动态申请的内存,称为动态内存。 常言道,借东西好借好还,下次再借也不难,但是有的…

    C语言 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部