C++学习笔记:纯虚函数和抽象类

纯虚函数:纯虚函数时一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本。

纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)


纯虚函数说明形式:

virtual 类型 函数名(参数表)=0;

一个具有纯虚函数的基类成为抽象类。


// 多继承在抽象类中的应用.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;

//接口类中只有函数原型定义,没有任何数据的定义

//C++中没有接口的概念,C++可以使用纯虚函数实现接口

class Interface1{
public:
	virtual void print() = 0;
	virtual int add(int a, int b) = 0;
};

class Interface2{
public:
	virtual void print() = 0;
	virtual int mult(int a, int b) = 0;
};

class Parent{
public:
	int getA(){
		a = 0; return a;
	}
private:
	int a;
};

class Child :public Parent, public Interface1, public Interface2{
public:
	virtual void print(){
		cout << "Child:print()已执行\n";
	}
	virtual int add(int a,int b){
		return a + b;
	}
	
	virtual int mult(int a,int b){
		return a*b;
	}
};

int _tmain(int argc, _TCHAR* argv[])
{
	Child c1;
	c1.print();//此时没有使用多态

	Interface1 *it1 = &c1;
	Interface2 *it2 = &c1;
	it1->add(1, 2);
	it2->mult(3,4);

	return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值