面试宝典经验总结:
拷贝构造函数的概念
static的基本用法
拷贝构造函数:首先明白拷贝构造函数是什么,它用来做什么,如何用,在默认和自定义情况下的具体区分点在哪里。
拷贝构造函数是什么?
拷贝构造函数是对象与对象之间数据传递操作,会被调用的拷贝方法。
用来做什么?
用来对未分配空间的对象初始化,使得具有初始化数据的特点。
如何用?
定义方式一般可以为:ClassName(ClassName& class_name),参数内部加引用为了防止无限递归。
默认和自定义的区别在哪里?
默认拷贝构造函数在调用时候是浅拷贝,意思就是说值对值拷贝。对指针会指向同一个指针区。在析构的时候会出现地址错乱,空间指向不定的问题。
自定义拷贝构造函数可以定义为深拷贝,会独立分配一个地址空间 ,不存在地址共用的问题。
static的作用分为2大块。1.C中的全局静态变量,和局部静态变量,静态函数。2. C++中的静态成员函数和静态数据成员。
C中的全局静态变量的特点:
存储区域:全局数据区
初始化:初始化为0
作用于:模块内的全局区
释放时间:程序开始到程序结束
局部静态变量:和全局静态变量前面2部分是一样的,作用于子局部区域。
静态函数:作用于在模块内,独立隐藏。
C++中的静态成员函数:是和类相关,本身没有*this指针,所以不能调用非静态成员变量。
静态成员变量:必须初始化,程序不会初始化。必须在类外初始化。
int ClassName::value = 7; //类外初始化
static int val = 7; //类内初始化错误。