我有2个班:
class base {
virtual void foo() {};
};
class derived : public base {
void foo() { base::foo(); }
};
Run Code Online (Sandbox Code Playgroud)
我犯了一个错误并写了base:foo();
而不是base::foo();
.代码已编译并运行,但是已经过segfaulted.
我不知道我怎么能谷歌它不知道它是什么,但我很感兴趣:这是什么意思?
base:foo();
Run Code Online (Sandbox Code Playgroud)
如果重要的话:
class base : public QAbstractGraphicsShapeItem
Run Code Online (Sandbox Code Playgroud)
R S*_*ahu 121
void foo() { base:foo(); }
Run Code Online (Sandbox Code Playgroud)
相当于:
void foo()
{
base: // An unused label.
foo(); // Calls the function again, resulting in infinite recursion.
}
Run Code Online (Sandbox Code Playgroud)
由于无限递归,该函数导致堆栈溢出.
归档时间: |
|
查看次数: |
3153 次 |
最近记录: |