5-const修饰成员函数

简介: 5-const修饰成员函数
#include<bits/stdc++.h>
using namespace std;
//常函数
class Person{
  public:
  Person() {
    m_A = 0;
    m_B = 0;
  }
    //this指针的本质是指针常量 指针的指向是不可以修改的 
    //const Person *const this
    //在成员函数后面加const,修饰的是this指针,让指针指向的值也不可以修改 
    void showPerson() const{
      //m_A=100;报错,不可以修改 
      m_B=100;
      cout<<m_B<<endl;
    } 
    void func(){
    }
    int m_A;
    mutable int m_B; 
}; 
//常对象
void test02()
{
  const Person p;//在对象前加const,变成常对象,常对象必须初始化 
  //const Person p(p);这种不用初始化 
  //p.m_A=100; 
  p.m_B=100;//m_B是特殊值,在常对象下也可以修改
  //常对象只能调用常函数
  p.showPerson(); 
  //p.func();
 } 
int main()
{
  //const修饰成员函数
    //常函数
    //成员函数后加const后我们称这个函数为常函数
    //常函数内不可以修改成员属性
    //成员属性声明时加关键字mutable后,在常函数中依然可以修改
    //常对象
    //声明对象前加const称改对象为常对象
    //常对象只能调用常函数
    Person p;
    cout<<"sizeof"<<sizeof(p)<<endl;
    cout<<"p.m_B= "<<p.m_B<<endl;
    p.showPerson();
    cout<<"p.m_B= "<<p.m_B<<endl;
    test02();
  return 0;
}


相关文章
|
3月前
const修饰指针
const修饰指针
19 0
|
4月前
|
编译器 C++
类和对象(6):const成员,&/const &重载
类和对象(6):const成员,&/const &重载
|
12月前
|
编译器 C语言 C++
const修饰的究竟是常量还是变量?
const修饰的究竟是常量还是变量?
78 0
|
5月前
|
C++
C++在构造函数中如何给const成员赋值
C++在构造函数中如何给const成员赋值
|
5月前
|
编译器 C++
在 C++ 中const 成员函数的运用
在 C++ 中const 成员函数的运用
|
5月前
|
C++
c++中const修饰成员函数的问题
问题引入: 看下面这一段代码:
45 0
|
10月前
|
编译器 C++
const修饰的变量通过指针修改的问题
const修饰的变量通过指针修改的问题
78 0
|
11月前
趣味讲解const修饰指针变量
趣味讲解const修饰指针变量
47 0
|
C++
C++中的const成员变量和成员函数
在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量和成员函数。 const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表,这点在前面已经讲到了,请猛击《C++初始化列表》回顾。 const成员函数(常成员函数) const 成员函数可以使用类中的所有成员变量,但是不能修改它们的值,这种措施主要还是为了保护数据而设置的。const 成员函数也称为常成员函数。 我们通常将 get 函数设置为常成员函数。
61 1
类与对象中const修饰成员函数
类与对象中const修饰成员函数
49 0