1. ホーム
  2. c++

[解決済み] 静的な仮想関数を持つことはできますか?もしできないなら、なぜですか?[重複]。

2022-02-16 09:16:13

質問

<ブロッククオート

重複の可能性があります。
C++の静的仮想メンバ?

静的な仮想関数を持つことはできますか?もしできないなら、なぜですか?

class X
{
public:
       virtual static void fun(){} // Why we cant have static virtual function in C++?
};

解決方法は?

いいえ、C++では意味を成さないからです。

仮想関数は、ポインタ/参照があるときに呼び出される インスタンスへの を使用します。 静的関数は特定のインスタンスに結びつかない、クラスに結びつきます。 C++はクラスへのポインタを持たないので、静的関数を仮想的に呼び出すシナリオは存在しません。