Effective C++笔记
Never redefines a function’s inherited default parameter value
*由
父类和子类各出一半力
#include <iostream>
using namespace std;
class Shape
{
public:
enum ShapeColor
{
Red, Green, Blue
};
virtual void draw(ShapeColor color = Red) const
{
cout << color << endl;
}
};
class Rectangle : public Shape
{
public:
virtual void draw(ShapeColor color = Green) const
{
cout << color << endl;
}
};
int main()
{
Shape *pr = new Rectangle;
pr->draw(); //0
Rectangle rec;
rec.draw(); //1
return 0;
}
考虑运行期效率
NVI(non-virtual-interface)
总结