小编Meh*_*ran的帖子

指针式转换会导致c ++崩溃

#include <iostream>

class Base {
public:
    virtual void print() = 0;
};

class Derived : public Base {
public:
    void print() {
        std::cout << "test\n";
    }
};

Base* getBase (Derived* d) {
    return (Base*) d;
}

int main()
{
    Derived* d;
    Base* b = getBase(d);
    b->print();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码编译(使用g ++)没有任何问题,但在运行后,它崩溃了!我尝试了不同类型的转换(如static_cast <>),但没有任何效果.

问题是什么?

c++ crash virtual pointers casting

1
推荐指数
1
解决办法
459
查看次数

标签 统计

c++ ×1

casting ×1

crash ×1

pointers ×1

virtual ×1