随笔——多态与虚函数

//多态与虚函数
#include
using namespace std;
class A
{
    public:
    virtual void print()
    {
        cout<<"A"<
//多态差别
#include
using namespace std;
class A
{
    public:
    virtual void fun()//声明多态
    {
        cout<<"A"<fun();
    pa=&b;
    pa->fun();
}


//对比
#include
using namespace std;
class A
{
    public:
    void fun()//没有声明多态
    {
        cout<<"A"<fun();
    pa=&b;
    pa->fun();
}
/*
对于没有声明函数为多态,这种情况下,调用的函数是指针类型的函数,也就是指针是什么
类型,调用的就是那个类型的函数。声明多态后,调用的是指针指向类型的函数。
*/
//纯虚函数和抽象类
#include
using namespace std;
class A
{
private:
    int x,y;
public:
    virtual void print()=0;//纯虚数
    out()
    {
        cout<
#include
#include
#include
#include
using namespace std;
class staff
{
protected:
    int x,y;
public:
    virtual void shu()
    {
        cout<<"&&&"<shu();
    printf("%d\n",sizeof(*p));//输出内存字节
    printf("%d\n",sizeof(*q));//输出内存字节
}
/*
  基类指针指向派生类,它的内存不会改变,也就是说它虽然指向了派生类,但是它依然
无法调用基类中没有的东西。
*/

c++规定:只要基类中的某个函数被声明为虚函数,这派生类中同名函数,同参函数表的成员
               函数即使前面不写virtual关键字,也会自动成为虚函数。


你可能感兴趣的:(C++随心笔记)