次のことを考慮してください。
class Abstract
{
public:
virtual void func() = 0;
};
int main() {
Abstract abs1; // doesn't compile
Abstract * abs2 = new Abstract(); // doesn't compile
Abstract * abs3; // compiles
return 0;
}
を実装していないことに注意してくださいfunc()。では、なぜAbstract * abs3;
純粋仮想メソッドと抽象クラスがあるところで実行できるのでしょうか? abs3->func(); を実行しようとすると実行時エラーが発生することはわかっています。、しかし、それでも、なぜ C++ がそのコードのコンパイルを許可するのか、私には明らかではありません ...?
ありがとう、ロン