は、我々は(C++)での仮想静的メソッドを持つことができますか?私は、次の コードのコンパイルしようとしました:
#include <iostream>
using namespace std;
class A
{
public:
virtual static void f() {cout << "A's static method" << endl;}
};
class B :public A
{
public:
static void f() {cout << "B's static method" << endl;}
};
int main()
{
/* some code */
return 0;
}
をコンパイラはと言う:
member 'f' cannot be declared both virtual and static
はので、私は答えはノーだと思いますが、なぜですか?
おかげで、クラスの機能に ロン
Aha、staticは* thisが存在しないことを意味し、virtualはメソッドにthisポインタがあることを意味します。両者を組み合わせると矛盾が生じます。よかった、ありがとう –