说我有下面的类类型 class base
{
};
class der : public base
{
};
用的static_cast可以使用对象和指针。 我尝试以下 - 但是以下不起作用 base b;
der m = static_cast<der>(b);
任何建议,为什么第二次不起作用其中工程(指针) base* b = new base();
der * m
该类是多态的。 为什么两个打印输出相同? class A
{
public:
virtual void P(){ cout << "A" << endl; }
};
class B : public A
{
public:
void P()override{
cout << "B" << endl;
}
B(){ cout << "
static_cast如何工作?如果你正在做的事情一样...... 如果d通过一些未指定的层次结构(不一定直接)的B继承,你这样做: B* b = new D();
D* d = static_cast<D*>(b);
发生了什么?它只是在编译时计算偏移量并将该偏移量应用于指针?或者在运行时发生了什么事情以便执行演员?