相关疑难解决方法(0)

常规演员与static_cast与dynamic_cast

我已经编写了近二十年的C和C++代码,但这些语言的一个方面我从未真正理解过.我显然使用常规演员表,即

MyClass *m = (MyClass *)ptr;
Run Code Online (Sandbox Code Playgroud)

到处都是,但似乎有两种其他类型的演员,我不知道其中的区别.以下代码行之间有什么区别?

MyClass *m = (MyClass *)ptr;
MyClass *m = static_cast<MyClass *>(ptr);
MyClass *m = dynamic_cast<MyClass *>(ptr);
Run Code Online (Sandbox Code Playgroud)

c++ pointers casting

1661
推荐指数
8
解决办法
67万
查看次数

生成随机枚举

如何在C++中随机选择枚举类型的值?我想做这样的事情.

enum my_type(A,B,C,D,E,F,G,h,J,V);
my_type test(rand() % 10);
Run Code Online (Sandbox Code Playgroud)

但这是非法的......没有从int到枚举类型的隐式转换.

c++ enums

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×2

casting ×1

enums ×1

pointers ×1