C/C++面试拷问灵魂知识点(只给出标题和简单的解答 持续更新)
相关的链接
C/C++:
https://www.cnblogs.com/hcr1995/p/9646379.html
https://blog.csdn.net/kuweicai/article/details/82779648
c++指针问题(比如指针的初始化问题)
没有初始化的指针应该指到null去;
释放了内存的指针,也应该指到null去。
c++中const问题
c++中static问题
C++中有了malloc / free , 为什么还需要 new / delete
malloc是库函数,而new是运算符。对象在创建的时候需调用构造函数,对象在释放的时候,需要调用析构函数。由于malloc是函数,所以不能由编译器把构造和析构的功能强加给malloc。而使用new的时候,会自动的调用构造函数,使用delete的时候会自动的调用析构函数。所以不要试图使用malloc来管理对象内存,而应该使用malloc。
那反过来说,已经有了new/delete了为什么还要malloc/free。
因为c++中经常需要调用c中的代码,所以需要malloc/free。
类的静态成员变量和静态成员函数各有哪些特性✳
静态成员变量属于整个类所有,所有对象共享类的静态成员变量
静态成员变量的生命周期不依赖于任何对象
可以通过类名和对象名访问public静态成员变量
静态成员变量的定义:
静态成员变量在类的内部声明,声明时直接通过static关键字修饰
静态成员变量在类的外部定义与初始化,语法规则为Type ClassName::VarName = value;
静态成员变量不占用类的大小,而是在类外(全局数据区)单独分配空间
与静态成员变量类似,静态成员函数是类中特殊的成员函数:
静态成员函数属于整个类所有
可以通过类名和对象名访问publ