注意!!!代码为了后续的开发,一定要注意写代码时遵循开闭原则()
如:
class A{
public:
virtual int get_num()=0; //此时get_num()为纯虚函数,拥有纯虚函数的类不允许实例化对象
protected:
int numa;
int numb;
};
class B:public A{
public:
int get_num(){
return numa+numb;
}
};
class C:public A{
public:
int get_num(){
return numa-numb;
}
};
有纯虚函数的类一般可以称为是抽象类,不允许实例化对象,若抽象类的子类不重写此纯虚函数,也不可以实例化对象,也属于抽象类。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class A{
public:
int get_num(char s){
if(s=='+')
return numa + numb;
if(s=='-')
return numa - numb;
}
};
明明第二种写法更简单啊,为什么不用第二种方法呢?
哈哈哈哈!!!
那是因为开闭原则,开:是指允许二次开发维护,闭:是指对别人修改代码不提供方法
比如需要一个 '\' 的时候,第一种方法直接直接继承父类的get_num()方法就行,而第二种方法则需要修改源代码
理解开闭原则
本文通过对比两种实现方式,解释了开闭原则的重要性。第一种使用抽象类和纯虚函数,便于扩展而无需改动原有代码;第二种虽简洁但在扩展时需修改源代码。
1130

被折叠的 条评论
为什么被折叠?



