c++ 面向对象程序设计--开闭原则

本文通过一个C++计算器程序实例介绍了面向对象设计中的开闭原则,即对修改关闭,对扩展开放。通过继承和多态实现了加法与减法功能,并预留了后续扩展的空间。

c++ 面向对象程序设计–开闭原则

在面对对象程序设计中,有很多原则需要我们去学习,在这里用c++简单的演示一下,开闭原则。开闭原则实质就是对扩展开放、修改封闭。等于说,一个系统需要增加新的功能,是在原有的基础上去扩展,而不是修改已有功能的代码。例如下面的计算器小程序,只实现了加法和减法、后续可以扩展乘除等等。(利用多态的思想,使得程序的可扩展性更强)

// 开闭原则.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <cstdlib>
#include <iostream>
#include <ostream>

class Calculate
{
public:
	virtual int myCalculate() = 0;
};

// 加法
class Add :public Calculate
{
public:
	Add(int a,int b)
	{
		this->a = a;
		this->b = b;
	}

	virtual int myCalculate()
	{
		return a + b;
	}

private:
	int a;
	int b;
};

// 减法
class Sub:public Calculate
{
private:
	int a;
	int b;

public:
	Sub(int a,int b)
	{
		this->a = a;
		this->b = b;
	}

	virtual int myCalculate()
	{
		return a - b;
	}
};

// 后续可扩展乘法、除法、取模、开根、平方等等。


int main()
{
	Calculate * p = new Add(10,20);
	int mAdd = p->myCalculate();
	std::cout << mAdd << std::endl;
	delete p;

	p = new Sub(10, 2);
	int mSub = p->myCalculate();
	std::cout << mSub << std::endl;
	delete p;
	system("pause");
	return 0;
}


结果:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值