mik*_*yko 4 c++ reinterpret-cast
我有两个类,A和B. A是B的父类,我有一个函数,它接受一个类型A的类的指针,检查它是否也是类型B,如果是,将调用另一个接受指向类型B的类的指针的函数.当函数调用另一个函数时,我提供reinterpret_cast(a)作为参数.如果这看起来很模糊,这里是一个代码示例:
void abc(A * a) {
if (a->IsA("B")) { //please dont worry much about this line,
//my real concern is the reinterpret_cast
def(reinterpret_cast<B *>(a));
};
};
Run Code Online (Sandbox Code Playgroud)
所以既然你知道我如何调用"def",我想知道reinterpret_cast是否实际上返回了一个类型B的指针作为参数发送到def.我将不胜感激任何帮助.谢谢
reinterpret_cast会一直做你说的 - 它是一个雪橇.你可以做
def(reinterpret_cast<B *>(42));
Run Code Online (Sandbox Code Playgroud)
要么
std::string hw = "hello";
def(reinterpret_cast<B *>(hw));
Run Code Online (Sandbox Code Playgroud)
它将始终返回一个指向正确类型的指针.它假设你知道你在做什么
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |