C/C++ 固有の解析

スタティックの検証は、C/C++ ソースコードを解析して、プログラム中のさまざまなエラー、警告、問題点をチェックします。 不適切なコード形式とオブジェクト指向設計ソリューション上の問題も検出します。

スタティックの検証は、次の問題を検出します。

次に、C/C++ 固有の解析例を示します。

1 #include "stdio.h"

2 class A {

3 public:

4 A() { destroy(); }

5

6 void destroy() { clear0();}

7

8 virtual void clear()=0;

9

10 void clear0() { clear(); };

11 };

12

13 class B : public A {

14 public:

15 B(){ }

16

17 virtual void clear(){ printf("overloaded clear"); }

18

19 virtual ~B() { }

20 };

21

22 int main() {

23 B b;

24 return 0;

25 }

スタティックの検証機能で次のメッセージが発行されます。

test2.cpp(10): 警告 #12327: [SV] 純粋仮想関数 'clear' がコンストラクターから呼び出されています (ファイル:test2.cpp 行:4)