构造器初始化
-
构造器 ,采用与类相同的名称,创建对象时,自动调用构造器来初始化对象
-
默认构造器(无参构造器):不接受任何参数的构造器
-
构造器也可带参数,指定如何创建对象
-
当类中没有构造器,编译器会自动创建一个默认构造器;
当类中已经定义了一个构造器(无论是否带参数),编译器都不会自动创建默认构造器 -
初始化顺序:
###首要步骤是,将分配给对象的存储空间初始化
#先静态成员数据,后非静态成员数据
#先成员数据,后成员方法(包括构造器)
#先构造器,后普通成员函数
#先初始化基类,后初始化子类
this关键字
this表示对调用对象的引用,用法与其他对象无异;
常用于如下几种情景:
- 返回对当前对象的引用
- 将当前对象传递给其他方法
static关键字
- static成员变量属于全局变量,只初始化一次,可直接由类名调用
- 不论该类是否产生对象,都会初始化静态成员数据
- static方法是没有this的方法,内部不能调用非静态方法
方法重载
-
重载:函数名相同,参数类型/参数数量不一致
(函数形参名不一致、返回类型不一致的两个函数不是函数的重载)
-
实现方法:
当主函数去调用重载函数时候,根据将实参的类型、个数与两个重载函数对的进行对比,自动调用与形参与实参一致的函数
Ps:
1)常函数和普通函数之间存在函数重载
2)使用含默认形参的函数重载时,注意防止二义性。
fun(int a,int b=1,int c=2);
fun(int a);
主函数中fun(x)
此时的函数调用会产生二义性,两个函数皆可以调用,并不知道该调用哪一个
3)功能不同的函数不要写成函数的重载