在父类定义了纯虚函数,在子类对其实现,编译时出现错误:
undefined reference to '**********'
原因:
使用的纯虚函数的时机,应该在子类对象创建之后再调用。
例如下面代码:
class A
{
public:
A()
{
func(); // 错误出现语句
}
virtual ~A() = default;
virtual int func() = 0;
};
class AA : public A
{
public:
AA() = default;
virtual ~AA() = default;
virtual int func() override
{
printf("func.\n");
return 0;
}
};
如果想在构造函数中调用该函数,可以在子类构造函数的实现体内调用
本文探讨了在C++中如何正确地使用纯虚函数。特别强调了在子类构造函数中调用纯虚函数的问题,并给出了正确的实现方式。

3万+

被折叠的 条评论
为什么被折叠?



