C++中const和static修饰的成员函数

1、const修饰成员函数


    特点:
        这个成员函数只能对数据成员进行读操作,不能进行写操作,防止误操作
        比如:访问数据
        
    格式:
        class 类名
        {
        public:
            返回值类型 函数名(形参列表) const
            {
                // 只能对数据成员进行读操作,不能进行写操作
            }
        };
            
    例子:
      

#include<iostream>
using namespace std;// 点为例来看class Point
{
private:int x;int y;
public:Point(){};Point(int x1,int y1):x(x1),y(y1){};// 访问类中的私有成员x和yvoid show(void) const;		
};void Point::show(void) const
{// x = 90;  报错:x是只读的 cout << "x:" << x << ",y:" << y << endl;
} int main(void)
{Point p1(3,5);p1.show();return 0;
}


        
    
2、static 修饰的成员函数
    特点:
        1、有static关键字
        2、在它的内部可以对static数据成员进行操作,只能对static的数据进行操作,不能对其他数据成员内进行操作。
        3、静态成员函数  只能调用 静态函数
        
    定义:
        class 类名
        {
        public:
            返回值类型 函数名(形参列表) const
            {
                // 只能对数据成员进行读操作,不能进行写操作
            }
        };
            
    举例:    
      

#include<iostream>
using namespace std;class Led
{
private:static int n;int x;
public:Led(){};static void flash(void);void show(void){cout << "xxxx:"  << n << endl;}	
};void Led::flash(void)
{n++;cout << "第" << n  << "盏灯亮"  << endl; // cout << "第" << n  << "盏灯亮" << ",x:" << x  << endl;   // 报错,不能访问非static的数据成员 
}int Led::n = 0;int main(void)
{Led l1;l1.show();while(1){l1.flash();}return 0;
}


        
总结:
    const修饰的成员函数:
        只能对数据成员进行读操作不能写操作
    static修饰的成员函数:
        只能对静态数据进行操作,不能对普通数据成员操作(静态成员函数内部没有this指针)
        静态成员函数  只能调用 静态函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

28 - 只出现一次的最大数字(高频 SQL 50 题基础版)

28 - 只出现一次的最大数字 select (selectnumfromMyNumbers group bynum havingcount(num)1order by num desc limit 1) as num;

二叉树的先序创建、复制、深度及结点个数

文章目录 前言一、二叉树的先序创建二、二叉树的复制三、二叉树的深度四、二叉树的结点个数总结 前言 T_T此专栏用于记录数据结构及算法的&#xff08;痛苦&#xff09;学习历程&#xff0c;便于日后复习&#xff08;这种事情不要啊&#xff09;。所用教材为《数据结构 C语言版…

体育器材管理系统(Java+MySQL)

技术栈 Java语言&#xff1a;作为主要编程语言&#xff0c;用于编写应用逻辑和界面交互。MySQL数据库&#xff1a;用于存储和管理体育器材的相关数据。Swing窗口视图&#xff1a;用于创建图形用户界面&#xff0c;使用户能够通过窗口进行操作&#xff08;GBK编码&#xff09;。…

线性模型-分类

一、线性判别分析LDA 线性判别分析是一种经典的线性学习方法&#xff0c;在二分类问题上最早是Fisher提出的&#xff0c;亦称为Fisher判别分析。 Fisher判别分析是一种用于降维和分类的统计方法&#xff0c;旨在找到可以最好区分不同类别的特征。它基于类内方差和类间方差的比…

Python语言证明:探索编程之道的奥秘

Python语言证明&#xff1a;探索编程之道的奥秘 在数字化浪潮中&#xff0c;Python语言以其简洁、易读和强大的功能&#xff0c;赢得了众多编程爱好者的青睐。它不仅在数据分析、人工智能等领域大放异彩&#xff0c;还在科学计算、网络编程等领域展现出强大的威力。那么&#…

Polar Web【简单】uploader

Polar Web【简单】uploader Contents Polar Web【简单】uploader思路EXP运行&总结 思路 本题的重点仍是文件上传&#xff0c;只是期间需要加上一步自主的文件上传。 打开环境&#xff0c;审查代码&#xff0c;发现在上传文件之后会自动生成一个以MD5散列值命名的目录&#…

赶紧收藏!2024 年最常见 20道 Kafka面试题(九)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Kafka面试题&#xff08;八&#xff09;-CSDN博客 十七、如果消费者故障&#xff0c;出现活锁问题如何解决&#xff1f; 在Kafka中&#xff0c;消费者故障可能导致活锁问题&#xff0c;特别是在消费者组中的多…

COMPUTEX 2024 国际电脑展即将举行,英伟达宣布将Copilot+引入RTX系列设备,赋能游戏本AI助理

COMPUTEX 2024 国际电脑展即将于2024年6月4日至7日在台北南港展览馆1馆及2馆盛大举行。作为业界瞩目的盛会&#xff0c;本次展会不仅吸引了全球各地的科技爱好者&#xff0c;更迎来了AMD CEO苏姿丰博士和NVIDIA首席执行官黄仁勋的精彩演讲。 在展会的开幕之际&#xff0c;图形…

c#之字符串的操作

//字符串拼接 //string naem "张三"; //string desc "学生"; //StringBuilder sbnew StringBuilder(); //sb.Append(naem); //sb.Append(desc); //Console.WriteLine(sb);//string.Format() 格式化字符串 //string name "张三"; //string des…

查看服务器端口是否打开,如何查看服务器端口是否打开

查看服务器端口是否打开&#xff0c;是确保服务器正常运行和网络通信畅通的关键步骤。以下是几个有力的方法&#xff0c;帮助你快速、准确地判断端口状态。 首先&#xff0c;你可以使用telnet命令来检测端口的连通性。telnet是一个网络协议&#xff0c;可以用于远程登录和管理网…

如何重新设置路由器密码

一、如果记得路由器的原密码 1.查看路由器的ip windows查看&#xff1a;电脑先连上网 打开命令提示符&#xff08;按下Windows键&#xff0c;然后输入cmd并按回车&#xff09;在命令提示符窗口中&#xff0c;输入ipconfig并按回车。查找“默认网关”或“Default Gateway”所对…

大数据与数据科学的学科边界

大数据和数据科学是两个紧密相关但又不完全相同的学科。它们都关注数据的收集、管理、分析和解释&#xff0c;但侧重点有所不同。 大数据主要关注处理和分析大规模数据集的技术和方法。它涉及到数据存储、数据处理、数据挖掘、数据可视化和分布式计算等方面的技术。大数据的目…

如何将 MySQL 数据库共享给他人?

文章目录 共享所有数据库给他人1. 连接到 MySQL 数据库2. 选择要使用的数据库3. 修改连接所需的 host4. 刷新权限 共享部分数据库给他人1. 创建用户2. 授权3. 刷新权限 结语 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是I…

张大哥笔记:高考,万人过独木桥,你怕不怕摔倒?

今天刷到一个新闻&#xff1a;宁夏煤业计划招600名挖煤的井下操作工&#xff0c;要求大学学历&#xff01;结果却吸引了7900人来报名&#xff01;我都惊呆了&#xff0c;什么时候挖煤都要求这么高的学历了&#xff0c;那读书到底起啥作用&#xff01; 如果一个人读书读到大学后…

求二叉树第k层结点的个数--c++【做题记录】

【问题描述】 求出二叉树的第K层结点个数。 【输入形式】 第一行输入扩展二叉树树的前序遍历序列 第二行输入k值&#xff0c;(k>0)。 【输出形式】 输出树的第K层结点个数。 【样例输入】 ab##cd##e## 2 【样例输出】 2 【样例说明】 上述输入对应以下结构的二叉树&#xff…

1.Rust安装

目录 一、安装1.1 在Windows上安装1.2 在Linux下安装 二、包管理工具三、Hello World3.1 安装IDE3.2 输出Hello World 一、安装 1.1 在Windows上安装 点击页面 安装 Rust - Rust 程序设计语言 (rust-lang.org)&#xff0c;选择"下载RUSTUP-INIT.EXE(64位&#xff09;&qu…

Vue——子级向父级使用props传递数据(函数)

文章目录 前言原理案例效果演示 前言 看到这个标题&#xff0c;相信很多人会说我&#xff0c;你之前博客写的父级向子级中传递数据使用的是props&#xff0c;然后说的子级向父级传递数据则是用的$emit。 并且还说了对于String、数组Array&#xff0c;只能是父级使用props传递…

矩阵链相乘(动态规划法)

问题分析 矩阵链相乘问题是一个经典的动态规划问题。给定一系列矩阵&#xff0c;目标是找到一种最优的乘法顺序&#xff0c;使得所有矩阵相乘所需的标量乘法次数最少。矩阵链相乘问题的关键在于利用动态规划来避免重复计算子问题。 算法设计 定义子问题&#xff1a;设 &…

代码随想录第三十天打卡|332.重新安排行程, 51. N皇后, 37. 解数独

332.重新安排行程&#xff08;可跳过&#xff09; 代码随想录 class Solution { public:unordered_map<string,map<string,int>>mp;bool backtracking(int ticketNum,vector<string>&res){if (res.size()ticketNum1)return true;for (pair<const str…

【2024.06.06 晴-周四】

今日学习情况&#xff1a; 感想&#xff1a;早上去听了讲座&#xff0c;总共有十次&#xff0c;已达标。下午在做导师安排的一个python作业&#xff0c;遇到了BUG&#xff0c;还是解决了。还是得写个计划&#xff0c;要不然实习回来就很累&#xff0c;不想学习。明日计划&…