c++基础的记录(随笔记录一些基础的东西)
1.父类的析构函数为什么要加上virtual关键字。
比如说,父类A,子类B。在A* a = new B()的语句的时候,如果父类析构函数没有virtual,我们在delete指针a的时候,会走父类的析构,而不会掉用子类的析构函数,会造成内存泄漏。
2.父类中的virtual函数,子类重写该函数时,需要添加virtual关键字吗?
这个是可有可无的,因为一旦父类将函数标识为virtual的时候,其派生类会自动生成为虚函数。
3.new于malloc的区别。
new是在堆上构建对象,他是申请内存,并且初始化,而malloc只是申请内存,并没有初始化。
4.c++中的优先级问题。
优先级是从左向右,()的优先级比较高。
5.vector与list的区别。
vector是链表,而vector是数组。