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

#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;
}
全部评论

相关推荐

点赞 评论 收藏
分享
wuwuwuoow:Redisson 写错了,记得 Redis 儿子以后都不会写错。其他没啥问题,海投就行。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务