class Base {
int _i;
virtual void foo() {};
};
class Sub : public Base {
public:
char* _name[100];
void Bar() {};
};
int doSomething() {
return 0;
}
int main() {
struct T {
int i;
}const a;
T& b = const_cast<T&>(a);
int n = 6;
double d = static_cast<double>(n);
int* pn = &n;
void* p = static_cast<void*>(pn);
Base* pb = new Sub();
Sub* ps1 = static_cast<Sub*>(pb);
Sub* ps2 = dynamic_cast<Sub*>(pb);
delete pb;
pb = ps1 = ps2 = nullptr;
Base* pb2 = new Base();
Sub* ps21 = static_cast<Sub*>(pb2);
Sub* ps22 = dynamic_cast<Sub*>(pb2);
delete pb2;
pb2 = nullptr;
ps21 = ps22 = nullptr;
using FuncPtr = void(*)();
FuncPtr funcPtrArray[10];
funcPtrArray[0] = reinterpret_cast<FuncPtr>(&doSomething);
return 0;
}