为什么指向非虚拟类的空指针有效? (见附带的代码)

时间:2017-02-25 10:23:08

标签: c++

他们都编译。

即使指针设置为NULL,我也不明白为什么该方法有效。 ......然后,虚拟的没有。 (它在运行时崩溃)

代码:

#include "stdafx.h"

class Person {
public:
    void PrintHello() { 
    printf("Hello \n\n"); 
    }

    ~Person() {}
};

class Student {
public:
    virtual void PrintHello() {
    printf("hello");
    }

    virtual ~Student() {
    }
};


int main() {

Person* p = NULL;
    p->PrintHello();

    Student* s = NULL;
    s->PrintHello();

    return 0;
}

... 非常感谢。

0 个答案:

没有答案