首页 > 其他分享 >2022.01.14.const

2022.01.14.const

时间:2023-01-06 13:24:01浏览次数:112  
标签:初始化 const 14 int 成员 CTest mutable 2022.01

#include<iostream>
using namespace std;


class CTest{
public:
    
    const int m_a;
    mutable int m_b;//关键字:mutable 在常函数中可以修改
    //初始化参数列表:真正初始化类成员的地方,const 成员的初始化必须在初始化参数进行
    //普通的成员也可以初始化,多个成员初始化用逗号分割
    //初始化成员顺序,是成员在类中声明的先后顺序
    CTest():m_a(10),m_b(30){
        m_b=20;
    }
    CTest(int a):m_b(m_a),m_a(a){
        cout<<m_a<<" "<<m_b<<endl;
    }


    //常函数:参数列表后加const修饰,const 修饰this指针
    void show(/*const CTest *const this*/)const{
        cout<<m_a<<" "<<m_b<<endl;
        this->m_b=90;
    }
    void play(){
        cout<<m_a<<" "<<m_b<<endl;
        m_b=20;
    }
};



int main(){
    //const int a=10;//定义来了就要初始化,之后不能修改
    //int b=20;
    //    const int * p1 = &a;//常量指针 const修饰的是*p
    //    cout<<*p1<<endl;
    //    p1=&b;//修改指针的指向
    //    //*p1=30;//不能通过当前这个指针去修改指向空间的值
    //    int * const p2=&b;//指针常量 const修饰的是p指针
    //    *p2 = 30;
    //    cout<<*p2<<endl;//通过指针修改指向空间里的值
    //    //p2=&a;//修改指针的指向
    //    //int * const p3 =&a;//非法


    /*CTest tst;
    CTest tst1(60);
    cout<<tst.m_a<<" "<<tst.m_b<<endl;
    cout<<tst1.m_a<<" "<<tst1.m_b<<endl;
    tst1.show();
    cout<<tst1.m_b<<endl;*/


    const CTest tst;
    //tst.play();//CTest *const this=&tst  指针安全级别降低,不允许
    
    tst.show();//const  CTest * const this=&tst;
    CTest tst2;
    tst2.show();//const CTest * const thid=&tst2;
    
    system("pause");
    return 0;
}

 

标签:初始化,const,14,int,成员,CTest,mutable,2022.01
From: https://www.cnblogs.com/hualuoyumufeng/p/15827240.html

相关文章

  • 2022.01.21.类成员函数指针
    在继承下,允许未经转换,父类的指针可以指向子类指针父类的指针可以指向子类对象:同意多种类型,提高复用性,扩展性在调用继承于同一个父类的多个子类的同一个函数时,可以使用父......
  • 2022.01.18.类之间的横向关系
    组合:部分与整体,包含与被包含有生命周期约束关系它是一种“isapartof”的关系(部分与整体)。组合是一个类中包含另一个类对象。相比聚合,组合是一种强所属关系,组合关系的两......
  • 【题解】P2305 [NOI2014] 购票
    题意给定一棵边带权且以\(1\)为根的树,从后代结点\(u\)跳到祖先结点\(v\)的代价为\(dp_u+q_u\),其中\(p_u,q_u\)是给定的常数,\(d\)是\(u,v\)的树上距离。要......
  • 2022.01.23.多态
    多态的缺点:1.虚函数指针在每个对象中都会存在一份,虚函数列表列表中每个类存在一份,空间问题2.效率问题3.安全性问题抽象类:包含纯虚函数的类成为抽象类,不能定义对象纯虚函......
  • S2 - Lesson 14 - Do you speak English?
    Words amusing experienceanamusingexperience wave liftasksb.foralift replyv.replytosb.  languagethesamelanguagebodylanguage......
  • 算法14_位运算及经典面试题
    1.二进制Java数值运算过程中都是先将十进制转换为二进制然后再进行运算,再把二进制数据转换为十进制展现给用户。二进制运算规则如下:对于有符号的而言,最高位为符......
  • 144. 二叉树的前序遍历
    144.二叉树的前序遍历难度简单965收藏分享切换为英文接收动态反馈给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]......
  • upload.html:143 GET http://localhost:8080/user_image/85F250A6-E07D-4FCB-8092-D4A
    publicclassLoginInterceptorConfigureimplementsWebMvcConfigurer{@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){......
  • 硅基仿生业务全面 Serverless 容器化,14万+问答库助力糖尿病科普
    作者:宁佑章(硅基仿生科技)、元毅(阿里云容器服务)“使用阿里云容器服务Knative,解决了开发迭代慢的问题,加速了深度学习模型的性能提升;同时提供了弹性可伸缩的资源配置,满足网络服......
  • 硅基仿生业务全面 Serverless 容器化,14万+问答库助力糖尿病科普
    作者:宁佑章(硅基仿生科技)、元毅(阿里云容器服务)“使用阿里云容器服务Knative,解决了开发迭代慢的问题,加速了深度学习模型的性能提升;同时提供了弹性可伸缩的资源配置,满足网络......