叶言叶语啊

1,一个线程 申请内存 然后把flag 置为 ture ,另外一个线程 判断flag 为true 就去使用这个内存 请问这样操作可以吗–线程访问

2, 多个IO复用 --IO读写操作

3,数据库索引问题,索引在数据库中如何存储–数据库存储问题,B+树索引

4,epoll 网络模型

5,linux 什么情况下会触发 用户态与内核态的切换

6,如何自己实现system 函数

7,如何解决哈希冲突 i
哈希冲突

8,map和unordered_map底层数据查找和存储方式,引申到set和unordered_set,以及各自的不同
存储方式+底层数据查找方式

9,为什么将类的析构函数声明为虚函数
当基类指针指向子类对象时,在删除对象时,并没有调用子类成员对象和子类自身的析构函数,而只是调用了基类对象和基类的析构函数,造成局部销毁,也会造成内存泄漏。

10.分治法的基本思想
分+治。将原来的问题分成几个子问题,再进行合并处理。比如归并排序。
将一个无序数组先分成两个,通过递归,最终得到多个长度为1的子数组,治,就是把已经排好序的两个小数组合成一个排好序的大数组,从长度为1开始,最终合成一个大数组。
divide+merge
表达式问题

11.快速排序的基本思想–几种排序的基本思想
链接

12.右值引用用在什么场景

13.红黑树相对于二叉树排序的优点

14,虚函数表,动态原理
自己画的图

15.auto 是怎么实现 类型匹配的

16.多个线程 访问share_ptr 怎么保证计数器的正确性,考察智能指针
智能指针

17,什么时候不需要定义虚析构函数?
不需要基类对子类及对象进行操作的时候,不需要定义虚析构函数,这样会增加内存开销。

18.构造函数与参数列表有什么不同

20,什么情况下 类是没有默认构造函数?

21,构造函数能不能调用虚函数

class Base
{
public:
    Base()
    {
        Fuction();
    }

    virtual void Fuction()
    {
        cout << "Base::Fuction" << endl;
    }
};

class A : public Base
{
public:
    A()
    {
        Fuction();
    }

    virtual void Fuction()
    {
        cout << "A::Fuction" << endl;
    }
};

/*
A继承自base,A的构造函数调用了虚函数Fuction(),当基类指针指向子类对象时,a这个对象必须先调用基类Base的构造函数Fuction()。

建立一个对象时,基类构造函数->子类构造函数。析构一个对象时,子类析构函数->基类析构函数。如果在系
Q:为什么不能在构造函数中调用虚函数?也就是说基类的构造过程中,虚函数调用也不会传递到派生类中。
A:
1.虚函数的作用是什么?是实现部分或默认的功能,而且该功能可以被子类所修改。如果父类的构造函数设置成虚函数,那么子类的构造函数会直接覆盖掉父类的构造函数。而父类的构造函数就失去了一些初始化的功能。**这与子类的构造需要先完成父类的构造的流程相违背了。**而这个后果会相当严重。

2.虚函数的调用是需要通过“虚函数表”来进行的,而虚函数表也需要在对象实例化之后才能够进行调用。在构造对象的过程中,对象显然没有进行实例化,更没有为“虚函数表”分配内存。所以,这个调用也是违背先实例化后调用的准则。

3.虚函数的调用是由父类指针进行完成的,而对象的构造则是由编译器完成的,由于在创建一个对象的过程中,涉及到资源的创建,类型的确定,而这些是无法在运行过程中确定的,需要在编译的过程中就确定下来。而多态是在运行过程中体现出来的,所以是不能够通过虚函数来创建构造函数的,与实例化的次序不同也有关系。

Q:为什么析构函数中不能调用虚函数
A:从概念上来说,析构函数是用来销毁一个对象的。先调用子类的析构函数->基类析构函数。所以在调用基类析构函数的时候,子类的析构函数认为善后工作已经完成了,这个时候如果子类析构函数中再有虚函数,就没有意义了。
*/
22,静态成员是什么时候初始化的
类的静态成员在类内定义,但是必须在类外初始化,因为静态成员属于整个类,如果在类内初始化,导致每个对象都有该静态成员,这是矛盾的。

c++ 11 左引,右引,析构函数为什么不能抛出异常,vector如何节约内存,数据库索引,线程锁,多进程,多线程怎么写,数据库底层原理,vector和list比较,编码规范,linux杀死进程线程,

0-29 面试 51Word

1,C++基础
多态有几种,多态如何实现。
静态多态和动态多态。
从动态多态引出虚函数,引出虚表指针,引出内存(堆,栈,常量区)
虚函数是属于类还是类的对象,是放在栈中还是堆?
memcpy和memmove的区别,设计一个memcpy,
memcpy和memcpy_s的区别

2,stl
vector扩充原理 2倍那个,
stl有哪些设计巧妙的东西

3,线程
线程放在哪里?
socket通信用过吗,一个
线程创建有几步?

4,OS
用户态线程和内核态线程的区别

5,其他
用小内存读取大文件有什么注意事项
数字的保存和文件的读取,主要是内存的溢出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值