相关疑难解决方法(0)

在C++中查找对象的类型

我有一个A类和另一个继承它的类,B.我重写了一个接受A类对象作为参数的函数,所以我必须接受一个A.但是,我后来调用只有B的函数,所以我想返回false,如果传递的对象不是B类,则不继续.

找出传递给我的函数的对象的最佳方法是什么?

c++ types

135
推荐指数
6
解决办法
26万
查看次数

运算符删除和转换

我可以像下面的代码一样使用smth:

int main()
{
    int* foo = new int;
    double* bar = reinterpret_cast<double*>(foo);
    delete bar;
}
Run Code Online (Sandbox Code Playgroud)

是UB吗?

我认为我们只需要为operator new返回的指针调用operator delete,但是在这种情况下怎么样?

我认为它是UB,因为reinterpret_cast不会对结果指针提供任何保证.我对吗?

有人可以从标准中发布正确的报价吗?

c++

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

为什么动态类型在C++运行时才知道?

我已经阅读了1347691等其他问题,并知道动态和静态类型是什么.

但是,我很好奇为什么直到运行时才知道动态类型.毕竟,我们人类可以通过查看代码来决定动态类型.为什么编译器不能这样做?

实际上我们可以typeid用来决定所谓的运行时类型.编程/ RTTI.

那么为什么在"C++ primer 5th"一书中,作者仍然说

直到运行时才知道动态类型

c++ rtti

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

标签 统计

c++ ×3

rtti ×1

types ×1