1. ホーム
  2. c++

[解決済み] とはどういう意味ですか?

2023-03-04 05:35:07

質問

2つのクラスがあります。

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

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

私は間違えて base:foo(); ではなく base::foo(); . コードはコンパイルされ、実行されましたが、セグメンテーションが発生しました。

ググってもわからないのですが、とても興味があります:どういうことなのでしょうか?

base:foo();

重要であれば

class base : public QAbstractGraphicsShapeItem

どのように解決するのですか?

void foo() { base:foo(); }

とは等価である。

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

無限再帰のため、この関数はスタックオーバーフローを引き起こします。