我正在使用PC Lint并且遇到了这个问题。我有一个类似下面的代码:
class A {
public:
virtual void doSth(int* arg);
}
class B : A {
public:
void doSth(int* arg) {...}
}
我的一个方法有一个指针参数。这当然让PC Lint对可能的NULL指针参数感到愤怒(错误613,设计没问题,我不是在争论)。但是我知道在我的程序中我从不传递NULL指针。另一方面,我不想完全禁用整个方法中的613个警告,所以我放弃了使用
的想法//lint -efunc(613,*::doSth)
我决定坚持使用-esym(613,arg),+ esym(613,arg)包装我的方法。
我在考虑的是使用基类可能有更通用的方法解决这个问题吗?如何在虚拟doSth()方法中禁止* arg的警告,以便它包含派生类中的所有方法?是否可以使用PC Lint?