常对象,常数据成员,常函数

#include <iostream>

using namespace std;

int main() {

    //常对象:只能调用const成员函数,
    //常成员函数不能调用其他非const成员函数
    class en {
    public:
        int id;
        string c1;
        const string c = "dswe";//常数据成员;只能通过构造函数的初始化参数表付一个初始值,然后就不能改变了
    public:
        en(int x, string b) {
            id = x;
            c1 = "SFdsa";
        }

//        en(string c2) : c(c2) {};//常数据成员const string a只能通过构造函数参数数据表来处理
        void shu() {
            id = 78;
            c1 = "dfd";
        }

        void input() const {
        }
    };

    en const s1(45, "dfasf");//定义常对象,必须用构造函数初始化
//    s1.shu();//当一个对象是常对象,则只能调用常成员函数(不能修改对象成员数据的、值),不能调用普通的成员函数,除开构造函数和析构函数。
    const en s2(56, "AFASD");
    s2.input();
    s2.id = 78;//常对象初始化以后就不能修改值;
    //对于需要通过成员函数改变的数据成员,则类型为mutable int a;
    return 0;
}
全部评论

相关推荐

02-16 13:52
门头沟学院 Java
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
牛客245670684号:虚拟货币预测正确率百分之99,还要找工作干嘛,不早就财富自由了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务