C++基础(下)
1、类函数的重载特性
class student
{
public:
char name[64];
int age;
void test();
void test(int a);
private:
int haha;
};
表示我们可以在类里定义同名但参数不同的函数
如,一个类里面可以同时定义下面两个函数
void test();
void test(int a);
重载函数在调用时,会根据参数的类型,然后去匹配相应的函数进行调用。
2、构造函数和析构函数
析构函数:如已定义析构函数,则当对象被删除/生命周期结束,则触发析构函数
构造函数:一经定义即刻触发
注意:
(1)析构函数和构造函数的名称必须和类的名称一模一样
(2)析构函数前要加上一个符号~
如构造函数:
student::student(){
count<<"hello!"<<endl;
}
student::~student(){
count<<"Bye!"<<endl;
}
注意:构造函数可以被重载。
析构函数不可以重载。
构造函数中的参数再定义类的时候就需要给出。
如构造函数要求引入一个int a
student::student(int a){
count<<a<<endl;
}
则定义student类的时候只能在堆里面定义,且需给出引入的参数(需要传个参数)
如:`
student *myl = new student(10);
3、类的继承
指子类可以继承父类的public和protected部分,但不能继承private
当我们觉得这个类不好的时候,可以使用类的继承,添加我们需要的功能。
如子类mystudent要继承父类student,格式如下:
class 儿子:public 爸爸{
public:
…
protected:
}
例子:
class mystudent:public student{
public:
int grade;
};
子类的要访问父类的成员也是通过.和->来访问。
4、虚函数和纯虚函数
-
虚函数:有实际定义的,virtual来修饰,允许派生类对他进行覆盖式的替换(即在子类与父类中同时含有相同名称的函数时,子类函数的调用优先使用在子类中定义的虚函数)
-
纯虚函数:即没有定义的虚函数
如:
virtual void test(); //虚函数
virtual void test(){}; //纯虚函数
- 虚函数的优点:可以预留接口,实现分工合作