注意!!!代码为了后续的开发,一定要注意写代码时遵循开闭原则()
如:
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()方法就行,而第二种方法则需要修改源代码