Raj*_*war 2 c++ pointers casting object static-cast
说我有以下类类型
class base
{
};
class der : public base
{
};
Run Code Online (Sandbox Code Playgroud)
使用static_Cast,您可以使用对象和指针.
我试过以下 - 哪个有效(指针)
base* b = new base();
der * m = static_cast<der*>(b);
Run Code Online (Sandbox Code Playgroud)
但是以下不起作用
base b;
der m = static_cast<der>(b);
Run Code Online (Sandbox Code Playgroud)
有什么建议为什么第二个不起作用?静态转换不处理指针和对象吗?它适用于指针,但它不能与对象一起使用?
在第一个,你说"我有一个指针,我保证它指向一个der,所以请你去吧".1
在第二个中,你不能做出这样的承诺,因为你毫不含糊地拥有一个base,而不是一个der.
der,所以在运行时会得到未定义的行为.
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |