C/C++ 固有の解析

ソースコードの解析では、C/C++ ソースコードを調査し、 C++ 固有のエラーをチェックします。不適切なコード形式とオブジェクト指向設計ソリューション上の問題も検出します。

ソースチェッカーは、 次の問題を検出します。

例 1: コンストラクターからの仮想関数の呼び出し

 1 #include "stdio.h"

 2

 3 class A {

 4 public:

 5 A() { destroy(); }

 6 void destroy() { clear0();}

 7 virtual void clear()=0;

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

 9 };

 10

 11 class B : public A {

 12 public:

 13 B(){ }

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

 15 virtual ~B() { }

 16 };

 17

 18 int main() {

 19 B b;

 20 return 0;

 21 }

ソースチェッカーで次のメッセージが発行されます。

f1.cpp(8): 警告 #12327: 純粋仮想関数 "clear" がコンストラクターから呼び出されています (ファイル:f1.cpp 行:5)