多线程打印奇数
通过在for循环内部枷锁实现
怎么进行对应的参数传递
thread thr1(printf1,1);
thread thr2(printf2,2);
直接在线程名字后面加参数
线程join和detach的区别
- join将线程加入到主线程等待执行完毕
- detach将线程分离出去–可以独立运行
什么是多态?虚函数的本质是什么
- 是同一个行为具有多个不同表现形式或形态的能力
- 多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象
- 虚函数的本质是什么?
析构函数为什么要设置成虚函数?
-
一个成员方法可不可以实现虚函数,需要两点
- 对象已经存在了
- 函数得有地址
- 构造函数,inline成员函数,static成员函数都不可以定义成virtual虚函数
-
当使用基类指针–指向派生类的对象时
Base *p=new Derive(); delete p;
当你想通过delete释放派生类对象的内存时,会导致派生类对象的析构函数无法调用,只调用了基类部分的析构函数—如果此时派生类的析构函数有释放额外系统资源的代码,那么就直接造成资源泄漏了。–delete p这个代码是在编译时绑定的
但如果把基类的析构函数写成虚析构函数,此处就是动态绑定了,由于你是派生类提供了自定义的析构函数,那么虚函数表写的就是派生类的析构函数地址,此时派生类和基类的析构函数都可以调用到了
熟悉设计模式嘛
说说你项目的哪部分用到了多态
stl中map怎么去清除元素
- clear()–清楚所有的
- erase()-使用迭代器清除