普通转换 vs. static_cast vs. dynamic_cast
未定义、未指定和实现定义的行为
我遇到了一个奇怪的问题。在下面的代码片段中,我定义了一个类:
class NewClass
{
public:
void Test()
{
cout<<"NewClass Test"<<endl;
}
};
在我的main()方法中,我写下了以下代码:
void main()
{
int *ptr = new int();
NewClass *n = ((NewClass *)ptr);
n->Test();
}
它显示“NewClass Test”。我不明白如何将任何指针强制转换为 NewClass 并使其正常工作。
提前致谢!