什么意思?

我有两门课:

class base {
virtual void foo() {};
};


class derived : public base {
void foo() { base::foo(); }
};

我犯了一个错误,写了 base:foo();而不是 base::foo();。代码被编译和运行,但段错误。

我不知道我怎样才能谷歌它,也不知道它是什么,但我非常感兴趣: 这意味着什么?

base:foo();

如果重要的话:

class base : public QAbstractGraphicsShapeItem
3329 次浏览
void foo() { base:foo(); }

is equivalent to:

void foo()
{
base: // An unused label.
foo(); // Calls the function again, resulting in infinite recursion.
}

Due to infinite recursion, the function causes stack overflow.