C 和C++间struct 的深层区别
          
            时间:07-03 10:51 阅读:1837次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:在C++语言中struct 具有了“类” 的功能,其与关键字class 的区别在于struct 中成员变量
和函数的默认访问权限为public,而class 的为private。
               
                        
          
               在C++语言中struct 具有了“类” 的功能,其与关键字class 的区别在于struct 中成员变量和函数的默认访问权限为public,而class 的为private。
   例如,定义struct 类和class 类:
  struct structA
  {
  char a;
  …
  }
  class classB
  {
  char a;
  …
  }
  则:
  structA a;
  a.a = 'a'; //访问public 成员,合法
  classB b;
  b.a = 'a'; //访问private 成员,不合法
   许多文献写到这里就认为已经给出了C++中struct 和class 的全部区别,实则不然,另外一点需要注意的是:
   C++中的struct 保持了对C 中struct 的全面兼容(这符合C++的初衷——“a better c”),因而,下面的操作是合法的:
  //定义struct
  struct structA
  {
  char a;
  char b;
   int c;
  };
  structA a = {'a' , 'a' ,1}; // 定义时直接赋初值
   即struct 可以在定义的时候直接以{ }对其成员变量赋初值,而class 则不能,在经典书目《thinking C++ 2nd edition》中作者对此点进行了强调。