const函数调用非const函数:使用指针强转 const_cast<class* const>(this)->fun(); 有什么缺陷?
linux下简单命令:date --时间 cal--日历 bc--(进入简单计算器 scale = number ,number为小数点位数)
static关键字:
- 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。
- 把全局变量改变为静态变量后是改变了它的作用域;
- static函数与普通函数作用域不同,仅在本文件
- 类的静态成员,静态成员变量属于整个类所有
-静态成员变量的生命期不依赖于任何对象,为程序的生命周期
-可以通过类名直接访问公有静态成员变量
-所有对象共享类的静态成员变量
-可以通过对象名访问公有静态成员变量
-静态成员变量需要在类外单独分配空间
-静态成员变量在程序内部位于全局数据区
- 类的静态成员函数:
- 静态成员函数属于类,不属于对象,是类域中的全局函数
- 静态成员函数被类、类对象、类的派生类对象共享
- 静态成员函数没有this指针,不能调用非静态成员,只能调用静态成员
- 声明静态成员函数时,不可同时声明为virtual、const、volatile函数
- 静态函数可以使用作用域标识符直接访问,无需创建任何对象就可以访问
智能指针:
shared_ptr<int> p2(new int(1024)); 可以用new出来的指针直接初始化,但不能赋值初始化
auto p = make_shared<int>(42); 赋值初始化需要使用智能指针或者make_shared函数
auto q(p); 拷贝构造,得到一个共享地址的智能指针,p改变,q也会相应的改变
p.reset(new int(1024));不能将一个指针赋值给智能指针,需要使用reset重新指向一个对象
p.unique() 返回智能指针是否是当前对象仅有