当前位置: 首页 > news >正文

漯河市网站建设_网站建设公司_在线客服_seo优化

做设计私活的网站,织梦网站模板下载,网页设计大赛策划案的背景,做电子手环网站需求分析纯虚函数 and 抽象类 介绍纯虚函数抽象类纯抽象类(俗称&#xff1a;接口类) 介绍 本文主要介绍 纯虚函数 和 抽象类 纯虚函数 直接看源码吧&#xff0c;纯虚函数样式为&#xff1a;virtual 类型 函数名(参数表) 0; 源码 #include<iostream> #include<string> usi…

纯虚函数 and 抽象类

  • 介绍
    • 纯虚函数
    • 抽象类
    • 纯抽象类(俗称:接口类)

介绍

本文主要介绍 纯虚函数 和 抽象类

纯虚函数

直接看源码吧,纯虚函数样式为:virtual 类型 函数名(参数表) = 0;

源码

#include<iostream>
#include<string>
using namespace std;
class A
{
public://纯虚函数(仅做接口调用使用)virtual void Test(string) = 0;
};
class B :public A
{
public:void Test(string a){ cout << a << "Test" << endl; }
};
void main()
{//基类指针A *p = new B;p->Test("测试结果:"); system("pause");
}

运行结果

测试结果:Test
请按任意键继续. . .

抽象类

1.至少拥有一个 纯虚函数的类 称为抽象类
2.抽象类 不能实例化为对象
(PS:基类对象无法实例化,只能用 基类指针来指向不同的子类)
3.抽象类子类 必须对 基类中全部纯虚函数 提供有效覆盖,否则子类也是抽象类

  • 抽象类的使用
    例如 有几台不同品牌电视机,每一种品牌都有专属的显示方法(传输方法),将品牌分成多个子类进行区分
    1.我们只需要 创建一个抽象类
    2.创建一个相同名字成员的 纯虚函数 作为显示(传输)的调用方法
    3.这样使用 基类指针去指向不同的子类 则会调用不同的显示(传输)方法

源码

#include<iostream>
#include<string>
using namespace std;
//抽象类(至少拥有一个 纯虚函数的类 称为抽象类)
class A
{
public://纯虚函数(仅做接口调用使用)virtual void Test(string) = 0;
};
class B :public A
{
public://测试函数void Test(string a){ cout << a << "B" << endl; }
};
class C :public A
{
public://测试函数void Test(string a){ cout << a << "C" << endl; }
};
void main()
{//基类指针A *p = new B;p->Test("测试结果:"); delete p;//销毁 new 空间//基类指针p = new C;//改变基类指针指向 子类Cp->Test("测试结果:");delete p;//销毁 new 空间system("pause");
}

运行结果

测试结果:B
测试结果:C
请按任意键继续. . .

纯抽象类(俗称:接口类)

全部由 纯虚函数 构成的抽象类,称为 纯抽象类

#include<iostream>
#include<string>
using namespace std;
//纯抽象类(全部由 纯虚函数 构成的抽象类)
class A
{
public://纯虚函数(仅做接口调用使用)virtual void Test(string) = 0;//纯虚函数(仅做接口调用使用)virtual void foo(string) = 0;
};
//子类 B
class B :public A
{
public://测试函数void Test(string a){ cout << a << "B" << endl; }void foo(string str){cout << str << endl;}
};
//子类 C
class C :public A
{
public://测试函数void Test(string a){ cout << a << "C" << endl; }void foo(string str){cout << str << endl;}
};
void main()
{//基类指针A *p = new B;p->Test("测试结果:"); p->foo("B");delete p;//销毁 new 空间//基类指针p = new C;//改变基类指针指向 子类Cp->Test("测试结果:");p->foo("C");delete p;//销毁 new 空间system("pause");
}
http://www.ihoyoo.com/news/773.html

相关文章: