快速业务通道

C++编程杂谈之二:面向对象

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
tudent()
  {
    //////////////////////////////////////
    //初始化数据
    strname[0] = ''\0'';
    math    = 0;
    chinese  = 0;
    total   = 0;
  }

  void Student::InputData()
  {
    ///////////////////////////////////////
    //获取输入
    cout<<"enter name"<<endl;
    cin>>strname;
    cout<<"enter math"<<endl;
    cin>>math;
    cout<<"enter chinese"<<endl;
    cin>>chinese;

    //////////////////////////////////////
    //计算总分
    total = math + chinese;
  }

  void Student::PrintData()
  {
  cout<<strname<<"''''''''s total mark is:"<<total<<endl;  
  }

  int main()
  {
    Student someone;
    someone.InputData();
    someone.PrintData();
  }

我们先不去关心类的实现细节,现在对比一下main函数中的调用过程,每种方法和相应的数据结构联系在了一起,对外部的调用来说,我们不需要去关心数据结构和相应算法的关系,因为他们已经关联在了一起。也许这个例子不够说明问题,也许我的说明含糊不清,但是你想象一下:如果我们对一个物体,比如狗来建模,我们需要确定其属性(颜色、大小)和行为(跑、叫),我们肯定希望这些都与狗这个模型关联在一起:

Class dog
 (属性)
  Color
  Size
 (行为)
  Run
  yelp
如果是结构话的:
Struct dog
  Color
  Size
         (依赖关系)
  Run(dog somedog)   yelp(dog somedog)

显然后面的结构比较复杂,更不要说缺乏有效的成员属性保护。另外一个面向对象的强大就是继承与多态,下一篇我们再来讨论。

我希望我前面的表达足够的清楚,面向对象不是这样一篇文章可以描述的清楚的,我这里只是描述了一个发展过程的片面。我希望它能成为一个引子,能够为初学者提供一些帮助。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号