当前位置:有风信息港IT学院编程技术JAVA → C++中的struct专题研究

C++中的struct专题研究

减小字体 增大字体 作者:有风IT学院  来源:有风信息港  发布时间:2008-1-13 9:38:44
  C++之父Bjarn Stroustrup对C++语言概括的第一条就是"a better C"。struct这个关键字就来源于C。而在C++中,struct的含义已经和C中的struct不尽相同了。在C++中,用户定义类型,也就是class,拥有和内建类型一样的地位。这可以从C++中struct定义的类型在声明变量时不必再写出struct关键字看出。如

  

  struct Foo {

  // ...

  };

  

  Foo f;

  在C++程序中,人们似乎更热衷于使用class,而几乎忽略了struct的存在。实际上,struct就是成员默认为public的class(在class中,成员默认为private)。事实上以下两端代码完全等价:

  代码一:

  

  struct Foo {

  

  // ...

  

  };

  代码二:

  

  class Foo {

  

  public:

  

  // ...

  

  };

  那么为什么要有struct的存在呢?首先的原因自然是保持对C的兼容。原先的C代码可以不必修改就成为合法的C++代码。第二个原因(个人愚见),是为了让struct来表示抽象的数据类型以及抽象接口,而与class所表示的类的概念相区别。

  struct在C中的使用方式转移到C++以后仍然是非常重要,作为一组相关的数据而存在于一个struct,说明了他们在逻辑上是相互关联的数据,同时他们被保存在struct里而不是全局变量,也是对数据的一种管理。个人认为一种很朴素的用法要取代当前很热门的get-set用法。比如

  

  class Foo {

   int bar;

  public:

   int get_bar() { return bar; }

   void set_bar(const int& b) { bar = b; }

  };

  

推荐文章:搞笑之可爱水果表情  清新素洁水仙壁纸集

[1] [2]  下一页