人宅简单讲了一下,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