0

次のコードのコンパイルは成功しましたが、実行されません。ポインターpには avirtual ptrがあるvptr可能性がありますが、何もない可能性があるため、コンパイルして実行できないか、vptr作成されていないようなものがあると思いますここには抽象クラス以外のクラスは存在しないためです。

class one {
    int a;
    public:
    one(){a=0;};
    virtual void get()=0;
};

int main() {
    one *p;
    p->get();
}
4

2 に答える 2

4

を初期化しませんp。つまり、ランダムなメモリ位置を指しています。逆参照は未定義の動作であり、おそらくクラッシュします。

于 2013-04-30T08:16:02.653 に答える
0

your の値は、pオブジェクトのアドレスではないため、有効なポインターではありません。逆参照pは未定義の動作です。

于 2013-04-30T08:17:08.440 に答える