C++ c语言的const和c++的const/结构对象内存的区别、拷贝构造、赋值函数、静态成员、单例模式、mutable、 explicit关键字

C语言中的const与C++中的区别?

在C语言和C++语言中const都是用来保护数据的,且C++中还对const保护的数据进行了优化,一旦数据被const保护,就不会再去内存中读取数据,而是一直使用最初的,这样哪些数据被强行修改也不会造成影响。
C++中的const还可以用来修饰成员函数,这种被const修饰的成员函数被称为常函数,这种常函数隐藏的this指针会被cons保护。

没有成员的的结构对象,在C语言和C++中分别占多少个字节内存,为什么?

    C语言中的空结构对象0字节,而C++中的1字节。C++的空结构对象之所以有1字节是因为  C++中的类、结构、联合可以有成员函数。

拷贝构造函数

拷贝构造是一种特殊的构造函数,格式:
    类名(const 类名& that)
    {

    }

调用拷贝构造函数的情况

    用旧对象给新对象初始化时会自动调用拷贝构造。
    例:
    Test t;
    Test t1 = t; // 自动调用拷贝构造

拷贝构造的任务

    顾名思义就是拷贝构造负责把旧对象中的成员变量的值拷贝给新对象,默认情况下编译器会自动生成一个拷贝构造完成上任务。

需要手动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值