学习日志(十九)
纯虚函数
1.注意点
纯虚函数是没有函数体的虚函数,纯虚函数也是虚函数
. virtual 函数返回值类型 函数名(参数)=0;
具有纯虚函数的类叫做抽象
. 抽象类没办法构建对象
. 抽象类可以构建对象指针的
. 继承的子类也是抽象的
可以通过重写纯虚函数使得可以构造对象
2.示例
#include <iostream>
#include<string>
using namespace std;
class MM
{
public:
MM(string name, int age) :name(name), age(age){}
virtual void print()=0: //纯虚函数
protected:
string name;
int age;
};
class Boy :publicMM
{
public:
Boy():MM("名字",18)
{
}
//重写概念:
void print()
{
cout << "Boy重与print"<<endl:
}
protected:
};
class StuSystem
}
public:
virtual void insertData()=0;
virtual void deleteData() =0;
virtual void showData() const=0;
virtual int size() const = 0;
virtual int empty const=0;
protected:
};
class listSystem: public StuSystem
{
public:
void insertData()
{
}
void deleteData()
虚析构函数
1.作用及应用
. 析构函数用virtual 修饰就是虚析构函数
. 写在父类
存在父类指针被子类对象初始化的情况,通常大家要写虚析构函数
2.代码示例
#include <iostream>
#include <string>
using namespace std;
classMM
{
public:
virtual ~MM() //父类用虚折构函数
L
cout << "MM" << endl;
}
};
class Boy:public MM
{
public:
~Boy()
{
cout << "Boy" << end1;
}
};
int main()
{
{
MM*pmm= new Boy;
delete pmm;
}
return 0;
}