VC关于类的继承,虚函数,纯虚函数,几个修饰词
一、基类与派生类
#ifndef BASECLASS_H
#define BASECLASS_H
class Baseclass
{
public:
Baseclass();
virtual ~Baseclass(); //基类的析构函数必须是虚函数。
virtual void fun1();
};
#endif // BASECLASS_H
#include "baseclass.h"
Baseclass::Baseclass()
{
puts("This is Baseclass Constructor.");
}
Baseclass::~Baseclass()
{
puts("This is Baseclass Destructor.");
}
void Baseclass::fun1()
{
puts("BaseClass fun1");
}
继承类:
#ifndef CLASSA_H
#define CLASSA_H
#include "baseclass.h"
class ClassA : public Baseclass
{
public:
ClassA();
~ClassA();
void fun1();
};
#endif // CLASSA_H
#include "classa.h"
ClassA::ClassA()
{
puts("classa constructor.");
}
ClassA::~ClassA()
{
puts("classa destructor.");
}
void ClassA::fun1()
{
puts("classa fun1");
}
最后显示:
二、虚函数与纯虚函数
对于范例一代码:
virtual viod fun1();
就是虚函数,虚函数是实现类的多态的基础,其可以被派生类重写,实现新的功能;
而对于纯虚函数:
virtual viod fun1()=0;
则是在其后增加=0;表示该函数无实体(虚函数需有实体);
同时包含纯虚函数的类无法实例化;