小编Gee*_*Kay的帖子

C++ 类型将 int * 转换为 class

可能的重复:
常规强制转换、静态强制转换、动态强制转换
未定义、未指定和实现定义的行为

我面临一个奇怪的问题。在下面的代码片段中我定义了一个类

   class NewClass
   {
      public:
         void Test()
         {
             cout<<"NewClass Test"<<endl;
         }
   };
Run Code Online (Sandbox Code Playgroud)

在我的 main() 方法中,我写道:

        void main()
        {
           int *ptr = new int();
           NewClass *n = ((NewClass *)ptr);
           n->Test();
        }
Run Code Online (Sandbox Code Playgroud)

它显示“NewClass Test”。我不明白如何将任何指针类型转换为 NewClass 并且仍然可以工作。

提前致谢!

c++ casting

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

标签 统计

c++ ×1

casting ×1