#include<iostream>
using namespace std;
class A
{
public:
virtual void f() = 0;
};
class B: public A
{
public:
void f()
{
// f(); //segmentation Fault
cout<<"\bB's f() called"<<endl;
f(); //recursive loop
}
};
void A:: f()
{
cout<<"\nA's f() called"<<endl;
}
int main()
{
A *ptr;
B b;
ptr = &b;
b.f();
return 0;
}
Q->在这个问题..在B级F()内,如果我们之前调用f()的“COUT < <”的声明它给分段错误和cout <后” <“声明它给出递归循环。为什么会出现分段错误。感谢提前:)为什么分段错误即将
你期待什么发生? – Mat 2012-02-28 15:20:11
我的猜测是,问题不在于为什么他得到堆栈溢出 - 问题似乎是为什么他根据递归调用的位置得到不同的结果。 – Till 2012-02-28 15:22:14