zoukankan      html  css  js  c++  java
  • c与c++的界限

         最近比较多的思考编程语言的优劣,以及编程语言的发展轨迹,由于自己对编程语言的历史并不是了如指掌,所以肯定有很多漏洞,既然有想法了就要记下来,不能让它们白白的流逝了。
         c语言其实我用的并不多,是大学里正统的学习过的一门语言,学完这门语言后,虽说是新手,可接触其它语言的时候总是用c语言的习惯去写程序。比如说,遇到包含文件就很慌张,比如会考虑函数的包含顺序,比如说分不清数组为啥要有固定初始化长度,比如说不明白为啥申明个变量要用malloc等等。
         后来工作了直接用到的c++,c++是从c语言上发展过来的,本来是一族,但是c++有更多的限制,并且加入了继承和虚函数,模板这些概念。c++是一门非常复杂的语言的,c相对来说简单。c比较灵活,放心的让你去做任何你想做的事情,比如类型转换,如果你强转的话,c编译器是没有warn呢,比如说结构体,你可以任意访问结构体内的变量,但c语言里只有数据结构,函数都是全局变量。c++里有public,protected,private 访问限制符,你必须很清楚成员变量,成员函数具体的责任,才能很好的划分访问限制。c++类设计的时候遵循高内聚,就是说c++里的成员变量和成员函数都有很紧密的关系。通过类里的函数,和变量解决好问题。尽量少的依赖外部类和方法,少抛出接口。而c语言里全部是全局函数,可以任意用你想用的。c++里还有const 关键字,更加为语言加上了枷锁,告诉你什么东西可以修改,什么东西不可以修改,如果你想传递我,必须传递给一个const的类型才可以。比如c里的宏是非常灵活的,想怎么编写都可以。模板的话也是你必须传入特定的类型,然后针对特定类型进行编程。
         说了这么多,给我的感受就是,c语言是信任程序员的,所以用c写项目对程序员的要求更高,因为没有限制,所以很容易设计出拙劣的框架。而c++里有各种限制,并且兼容c语言,所以你必须的深入学习c++才行,才可以用到语言发明者bs为了避免程序员在设计上,在代码重用性上,在代码变态层次上的理解,才能写出好的c++程序。因为c++发明就是因为作者用c很不爽,因为c总是当好人,不告诉你的缺点,所以你很容易陶醉到自己的设计里,让你的坏习惯肆意的蔓延,最后受伤的人还是你。而c++里通过这些特定的概念,最起码提醒一下你,那些操作是危险的,那些设计是好的,那些常用的函数需要抽象。
  • 相关阅读:
    Apache Ant 1.9.1 版发布
    Apache Subversion 1.8.0rc2 发布
    GNU Gatekeeper 3.3 发布,网关守护管理
    Jekyll 1.0 发布,Ruby 的静态网站生成器
    R语言 3.0.1 源码已经提交到 Github
    SymmetricDS 3.4.0 发布,数据同步和复制
    beego 0.6.0 版本发布,Go 应用框架
    Doxygen 1.8.4 发布,文档生成工具
    SunshineCRM 20130518发布,附带更新说明
    Semplice Linux 4 发布,轻量级发行版
  • 原文地址:https://www.cnblogs.com/fengju/p/6174328.html
Copyright © 2011-2022 走看看