我遇到了一个关于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();
}
我猜想牛眼可能无法追踪到纯粹的虚拟函数。如果有人了解这个项目,请给我一些建议。
在给定的程序中有两个错误:
void func() = 0;
应该是
virtual void func() = 0;
而且,
class *pa = new B;
应该是
class B *pa = new B; // `class` keyword not needed
另外,请注意,A
和B
不相关(没有继承(。