以下代码有什么问题(struct构造问题)
 struct   Test   
  {   
          Test(   int   )   {}   
          Test()   {}   
          void   fun()   {}   
  };   
  void   main(   void   )   
  {   
          Test   a(1);   
          a.fun();   
          Test   b();   
          b.fun();   
  }  
解答:
b.fun(); //b不是Test的实例对象
类是结构体的扩展,在类中封装了对数据成员的操作,缺省的成员为私有的,而结构体为公有的,这就是它们的区别,对构造函数的调用,如果没有参数,是不需要加上括号的,如果加了括号,就不是定义一个对象了,而是声明了一个函数,返回该类型,所以上面的Test b(),实际上是调用一个函数名为b,返回类型为Test的函数,而不是创建了一个对象b,去掉括号后,就是调用的没有形参的构造函数。
本文章转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232
       
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号