如何在这里调用纯虚函数"pvf()"?请问有人可以解释一下吗?.................................................. .............
#include<iostream>
using namespace std;
class a
{
public:
a()
{
this->pvf();
this->p();
}
virtual int pvf() = 0;
virtual void p()
{
cout << "\n p fun";
}
};
int a::pvf()
{
cout<<"\n pure";
}
class b : public a
{
int i,j,k;
void o()
{
cout<<"\n der";
}
};
int main()
{
//b b1;
}
Run Code Online (Sandbox Code Playgroud)
在a类型的构造函数内部,对象仍然是类型a.任何对虚函数的调用都不会a在层次结构中调度任何覆盖.这意味着this->pf();内部调用a::a();将失败.
如果你真的想打电话a::pf,那么你必须禁用该电话的动态调度,你可以通过添加额外的资格来实现:( a::pf()或this->a::pf();)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |