1

ブルズアイ コード カバレッジに関する問題に遭遇しました。プログラムのトレース能力です。次のコードはトレースされません。

class A
{
public:
    virtual void func() = 0;
};

class B
{
public:
    virtual void func()
    {
         std::cout << "Am I traced?" << std::endl;
    }
};

void main()
{
    A *pa = new B;
    pa->func();
}

Bullseye は純粋な仮想関数をトレースしない可能性があると思います。プログラムに詳しい方がいらっしゃいましたらアドバイスをお願いします。

4

1 に答える 1

2

指定されたプログラムに 2 つのエラーがあります。

void func() = 0;

あるべきです、

virtual void func() = 0;

と、

class *pa = new B;

あるべきです、

class B *pa = new B;  // `class` keyword not needed

Aまた、とBは関連していない (継承されていない)ことに注意してください。

于 2011-07-06T02:58:18.247 に答える