C++之virtual 方法

109 阅读1分钟

1、例子1

#include <iostream>
class A
{
public:
    const char* fetchClassName() { return "A"; }
};


class B: public A
{
public:
    const char* fetchClassName() { return "B"; }
};


int main(void)
{
   B obj_b;
   A &obj_a = obj_b;
   std::cout << obj_a.fetchClassName() << "\n";
}

 


运行结果
A

 

 

 

 

2、例子2

 

 

 

#include <iostream>


class A
{
public:
    virtual const char* fetchClassName() { return "A"; }
};


class B: public A
{
public:
    virtual const char* fetchClassName() { return "B"; }
};


int main(void)
{
   B obj_b;
   A &obj_a = obj_b;
   std::cout << obj_a.fetchClassName() << "\n";
}

 

 


运行结果
B