#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