C++进阶之路——关键字

C++进阶------关键字

本系列博客主要对于已经有一定C/C++基础的网友,欢迎志同道合的朋友来进行纯粹的技术交流!!!

一、const

在C++中,const 关键字是一个非常重要的特性,用于定义变量或对象的值为常量,即一旦初始化后不可更改。这有助于提高程序的安全性和可读性,同时允许编译器进行优化。下面详细解析 const 关键字的几种常见用法:

  1. 定义常量变量
    当 const 用于变量时,它指定变量的值不能修改。例如:
cpp 复制代码
const int MAX_SIZE = 100;

这里,MAX_SIZE 被定义为一个常量,其值为100,尝试修改 MAX_SIZE 的值将导致编译错误。

  1. 定义常量指针
    'const' 可以与指针结合使用,根据 const 的位置,它的意义会有所不同:
    (2)指向常量的指针:指针指向的数据不可修改,但指针本身可以修改:
cpp 复制代码
const int* ptr = &value;
*ptr = 5;  // 错误!不能修改ptr指向的值

(2)常量指针:指针的值(即指针的指向)不可修改,但它指向的数据可以修改:

cpp 复制代码
int value = 10;
int another = 20;
int* const ptr = &value;
ptr = &another;  // 错误!不能改变ptr的指向
  1. 用于类的成员函数
    当 const 关键字用于类成员函数的末尾时,它表示该函数不会修改任何类成员变量(除了那些标记为 mutable 的变量)。这类函数可以被称为"常量成员函数",允许在常量对象上调用它们。例如:
cpp 复制代码
class Example {
public:
    int value;
    int getValue() const {
        return value;
    }
};

const Example obj;
int val = obj.getValue();  // 正确,因为getValue()是const成员函数

在这个例子中,getValue() 函数不会修改 Example 类的任何成员,所以它可以在常量对象 obj 上调用。

  1. const 与成员变量
    当 const 用于类的成员变量时,这意味着该成员变量的值在对象的生命周期内不能被更改(初始化后)。例如:
cpp 复制代码
class Example {
public:
    const int max_size;  // 必须在构造函数中初始化

    Example(int size) : max_size(size) {}
};

在这里,max_size 是一个常量成员,必须在构造函数列表中初始化。

总结

使用 const 可以增强程序的类型检查,防止意外修改变量,降低程序出错的风险,同时有助于提升代码的可读性和维护性。在接口设计和编程实践中合理使用 const 是一个非常重要的习惯。

其他关键字持续更新...

相关推荐
曼巴UE5几秒前
UE 属性同步
网络·c++·ue5
无忧.芙桃14 分钟前
图的精髓:邻接矩阵与遍历全解析
c++·算法·面试·深度优先·广度优先
jimy115 分钟前
标准的动态类型定义与“多态”无关,非多态对象同样会出现动态类型不同于静态类型的情形
开发语言·c++
MOONICK20 分钟前
COM 组件技术(三)
c++·windows
EAIReport22 分钟前
SpringBoot 与 SpringCloud 深度解析:核心特点、差异与协同关系
spring boot·后端·spring cloud
梦里寻码26 分钟前
从 0 到 1 用 NestJS + LangChain 搭一套可售卖的 SaaS AI 客服:挂件一行代码接入,知识库秒变 SEO 帮助中心
前端·后端·github
_wxd66628 分钟前
二叉搜索树(BST)万字详解:概念、操作、性能分析与 C++ 实现
数据结构·c++·二叉搜索树
imDwAaY29 分钟前
程序为什么会卡在死锁里?从四个必要条件到预防与解除
后端·操作系统
Bazingga31 分钟前
知识注入的两条路:RAG知识库与Skills蒸馏
后端
QQ142207844933 分钟前
基于 Flask 的「自动任务控制台」设计与踩坑实录
后端·python·flask