【C++入门】const和mutable关键字、常函数介绍

【C++入门】const和mutable关键字、常函数介绍1 常函数的定义 类的成员函数对类中任何成员不作修改而只能作访问的函数 简单来说 就是调用类的成员函数不会对类做任何修改 2 常函数的实现 常函数是依靠 const 关键字实现的 具体是在类中声明成员函数和实现成员函数时都用 const 关键字去修饰 常函数

大家好,欢迎来到IT知识分享网。

1、常函数介绍

1.1、什么是常函数

1.2、为什么需要常函数

1.3、使用常函数的好处

2、C++中的const关键字

3、mutable关键字

4、示例代码

4.1、person.hpp

#ifndef PERSON_HPP #define PERSON_HPP #include <string> using namespace std; namespace MAN{ 
    class Person{ 
    public: int age; //获取姓名,用const修饰成常函数,表示内部不会修改成员变量 string getName(void) const; //构造函数 Person(){ 
   }; Person(string myname){ 
   this->name=myname; this->getNameCnt=0;}; private: string name; //人的名字,不希望被修改 mutable int getNameCnt; //名字被查询的次数 }; } #endif // PERSON_HPP 

4.2、person.cpp

#include "person.hpp" #include <iostream> using namespace std; string MAN::Person::getName(void) const { 
    //因为getNameCnt变量被mutable修饰,所以这里才可以修改  this->getNameCnt++; cout << "getNameCnt=" << this->getNameCnt << endl; return this->name; } 

4.3、main.cpp

#include <iostream> #include "person.hpp" using namespace std; using namespace MAN; int main() { 
    //初始化name为linux Person p1("linux"); cout << "p1.name=" << p1.getName() << endl; cout << "p1.name=" << p1.getName() << endl; cout << "p1.name=" << p1.getName() << endl; return 0; } 

4.4、代码执行结果

root@ubuntu:# ./app  getNameCnt=1 p1.name=linux getNameCnt=2 p1.name=linux getNameCnt=3 p1.name=linux 

4.5、代码分析

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124845.html

(0)
上一篇 2025-10-02 21:15
下一篇 2025-10-02 21:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信