我正在使用 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 可以吗?