为什么靶心代码覆盖率不跟踪继承类的纯虚函数?

发布于 2024-11-18 18:29:48 字数 359 浏览 3 评论 0原文

我遇到了有关 Bullseye 代码覆盖率的问题。这是程序的跟踪能力。 下面的代码没有被追踪。

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 可能不会追踪纯虚函数。如果有人对该程序有所了解,请给我一些建议。

I met a problem about the Bullseye code coverage. It's a tracing ability of the program.
The following code is not traced.

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();
}

I guess that Bullseye may not trace pure virtual function. If there are someone who has a knowledge about the program, please give me some advice.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱你不解释 2024-11-25 18:29:48

在给定的程序中,您有 2 个错误:

void func() = 0;

应该是,

virtual void func() = 0;

并且,

class *pa = new B;

应该是,

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

另外,请注意 AB 不相关(没有继承)。

You have 2 errors, in the given program:

void func() = 0;

should be,

virtual void func() = 0;

And,

class *pa = new B;

should be,

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

Also, note that A and B are not related (no inheritance).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文