8.22总结

来源:互联网 发布:mac装win7单系统 编辑:程序博客网 时间:2024/04/28 17:51

今天学习了C++的多态

虚函数:是动态联编的基础,是非静态的成员函数

一个函数可以形成多种形式,与重载函数的区别是多态可以在多个类中运行

同一个函数名,若是虚函数,可以让他用多种方式执行

本质:不是重载声明而是覆盖!

1.虚函数不能和重载函数一样,进行修改它的参数了,返回类型

2.虚函数只能和定义的类型,返回类型一模一样

纯虚函数默认为抽象类,抽象类是不允许创建对象的,定义方式为virtual。。。()=0

抽象类:带纯虚函数的类

只能 作为基类使用,不能创建抽象类的对象

#include"GameScene.h"
#include <iostream>
using namespace std;
class A:public GameScene
{
public:
A();
virtual void xu(){
cout<<"虚函数的派生类"<<endl;
}


private:


};
A::A(){
cout<<"A的构造函数"<<endl;
}
class B:public A
{
public:
B();
virtual void xu(){
cout<<"虚函数的派生类的派生类"<<endl;
}


private:


};


B::B(){
cout<<"B的构造函数"<<endl;
}






int main(){
GameScene *p=new GameScene;
p->fun();
delete(p);
cout<<"臭傻逼"<<endl;
A *p1=new A;
p1->xu();
B *p2=new B;
p2->xu();


system("pause");
return 0;
}

创建一个.h文件,其中写的是类的声明,然后创建两个.cpp文件,一个写函数,一个调用函数。

经过代码的实践,发现一个结论。

在派生类生成对象的时候系统会调用析构函数,这个析构函数包括派生类的析构函数,以及父类的析构函数,说得通俗一点,就是孙子的对象生成时会调用父亲的析构函数和爷爷的析构函数,以此类推。

0 0
原创粉丝点击