4.22C++

人宅简单讲了一下,dll,lib,exe,pdb三者的区别,dll是动态链接库的意思,在程序运行的时候会链接到目标代码,且是二进制运行起来较快,lib静态连接库在程序编译时链接到目标代码,exe比较高级包含了dll且可以在操作系统直接运行

在函数末尾加上const ,则这个函数可以被访问但不能被修改。

还有另外一种强转的方法,const_cast<>(),<>里面放指针,()里面放着指针类型,这个的功能是去掉const

还有一种就是C风格的强转,虽然万能但是还是少用,避免出现野指针

这个reinterpret_cast<>()则非常灵活,可以把类型进行各种转换,转换过去了,再转换回来。<> 里面放着的是类型,后面()放着的是名称

dynamic_cast<>()可以进行向上向下转换。一般子啊这边向下转换。因为向上转换可以直接采取隐式的转换。这个的好处也还是避免出现野指针

而且这里的要用到dynamic向下转换的时候,接口就是父类必须有虚函数。后面delete的时候也要注意避免多次delete,像这里aa1和aa其实是同一个地址的。

static_cast不安全,有些关键字无法转换,const   _unaligned .这个比较大的好处是不需要要求父类必须是虚函数

引用不能赋空值,指针可以。这里出问题的原因是上面的init不是const修饰的,要想修改就得在init函数后面加上const

 但是如果在类中对函数加了个从const则后面该类的成员都不能再修改,也就是下图类中的a无法再改变,只能改变外面sa中a 的值。且const函数里面要调用其他函数的化,这个函数也得是const

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值