Design¶
避免虚拟方法的默认参数 AvoidDefaultArgumentsOnVirtualMethods¶
Since: 0.10.1
虚拟方法参数设置默认值将会打破多态性,以及增加一个类层次结构的复杂性
定义类: oclint-rules/rules/design/AvoidDefaultArgumentsOnVirtualMethodsRule.cpp
Example:
class Foo
{
public:
virtual ~Foo();
virtual void a(int b = 3);
// ...
};
class Bar : public Foo
{
public:
void a(int b);
// ...
};
Bar *bar = new Bar;
Foo *foo = bar;
foo->a(); // default of 3
bar->a(); // compile time error!
避免私有静态成员 AvoidPrivateStaticMembers¶
Since: 0.10.1
私有静态成员变量会破坏封装
定义类: oclint-rules/rules/design/AvoidPrivateStaticMembersRule.cpp
Example:
class Foo
{
static int a; // static field
};
class Bar
{
static int b(); // static method
}