1 声明和定义一个构造函数
1.1 声明一个构造函数-构造函数没有返回值类型;构造函数的名称必须与类名称相同;
如: Class Student{
public:
Student();//构造函数,且是默认构造函数
Student(int ,char *,int );//也是构造函数,但不是默认构造函数
}
调用该构造函数,将会为类分配内存空间,分配的内存空间主要是根据 成员变量的大小和成员函数的大小进行分配。
1.2 显式和隐式的调用构造函数
显式调用 Student chengyan = Student::Student();
Student chengyan = Student::Student(20,"chengyan",121);
隐式调用 Student chengyan; //编译器会隐式的去调用构造函数,不建议这么去做
Student chengyan(20,"chengyan",121);//隐式的调用非默认构造函数
1.3 默认构造函数
默认构造函数有俩种,一种是给构造函数提供默认值
如:Class Student{
public:
Student(const char *name = "xiaoming" ,int age = 20 ,int class = 131 );//全部提供默认值的默认构造函数
}
第二种是对默认构造函数进行重载
如: Class Student{
public:
Student();//对默认构造函数进行重载
}
2 析构函数2.1 析构函数的声明
析构函数和构造函数一样,没有返回值;
析构函数不接受参数;
析构函数的名称与类名一致;
析构函数要在声明前加特殊符号 “~”;
如: Class Student{
public:
Student();//构造函数
~Student();//析构函数
}
2.2 析构函数何时被调用
如果是局部变量,在代码执行完毕时调用;如果是静态变量,在程序结束时调用;如果是new出来的,在进行delete操作时调用。