中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
C++ 中的union、struct和class的异同
作者:未知 时间:2005-07-27 23:18 出处:CSDN 责编:chinaitpower
              摘要:C++ 中的union、struct和class的异同

C++ 中的unionstructclass的异同

 

本文中写的都是它们在C++中的异同,而非C中的,因为在C中无论是union还是stuct都没有操作,也没有访问控制的概念。

 

这几天工作不是很忙,就顺手把Bruce EckelThinking in C++ Volume 1                        翻着浏览一下。

看到Chapter 7中关于union这一节,竟然发现union也有类似于class的用法,咦,以前看的时候怎么就没有发现呢,是不是以前仅仅是走马观花?也或许这本书的确不错,它的精华我不可能第一次阅读的时候就能够全部体会到,因而每读一次就有新的体会。

Unionstruct class 的确是有很多类似的用法。这儿权当是读书笔记,记下来吧。

 

这里,还是举例说明吧。

先定义如下三个抽象类型。

union unionA

{

    int m_iInt;

    char m_cChar;

       int getInt(){

initializePara();

};

  public:

unionA(){

initializePara();

};

    ~unionA(){                                                  cout<<"unionA::~unionA()"<<endl;

};

  public:

char getChar(){             

return m_cChar;

};

  private:

    void initializePara(){

m_iInt = 0;

m_cChar = 'A';

};

};

struct structB

{

    int m_iInt;

    char m_cChar;

       int getInt(){

initializePara();

};

  public:

structB (){

initializePara();

};

    ~ structB (){                                                cout<<"unionA::~unionA()"<<endl;

};

  public:

char getChar(){             

return m_cChar;

};

  private:

    void initializePara(){

m_iInt = 0;

m_cChar = 'A';

};

};

class classC

{

    int m_iInt;

    char m_cChar;

       int getInt(){

initializePara();

};

  public:

classC (){

initializePara();

};

    ~ classC (){                                                 cout<<"unionA::~unionA()"<<endl;

};

  public:

char getChar(){             

return m_cChar;

};

  private:

    void initializePara(){

m_iInt = 0;

m_cChar = 'A';

};

};

 

 

1Unionstruct class 都可以定义

 

 

/*

union unionSubA: public unionA

{

};

*/

struct structSubB:public structB

{

};

 

class classSubC: public classC

{

};

 

struct structSubC:public classC

{

};

 

class classSubB:public structB

{

};

 

 (to be continued )


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有