动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.C程式中关于整数储存的说明.
.C++数据结构学习:在链表中链入对.
.8 Quen.
.256色汉字显示程序.
.C++中将DBGrid中的数据导出到Wor.
.下面的源码中搬掉僵尸.
.C++ 中重载 + 操.
.C++启蒙之注释符号.
.Order by 的数值型灵活使用.
.浅议C++ 中的垃圾回收方法.
.Visual C++/MFC入门教程(四.
.如何单步执行外部程序.
.用C++访问SQL Server .
.C++基础:函数指针调用方式.
.C++ Builder 预定义动.
.谁动了我的指针.
.在c/c++中利用数组名和指针进行排.
.如何简化临时内存的分配与释放.
.《C++编程规范》笔记(设计风格).
.对C++程序内存管理的精雕细琢.

C++入门解惑——为什么学习C++

发表日期:2008-3-8 |



  为什么学习C++

0.Why Shall I Learn C++?

C++作为一门较为成熟重量级的语言,吸引了许许多多编程学习者。单从市面上编程书籍中C++的书所占的比例即可见一斑。当然,近年来随着Java、C#的兴起与逐渐发展,也出现了一些不同的声音,认为C++并非高效应用编程的首选,而且硬件的迅速发展也会使虚拟平台的速度劣势淡化,而其优良的可移植性及安全性将使之成为新的语言主流……

但无论怎么说,C++强大灵活的语言机制、深邃的内涵、广博丰富的外延使它成为一个时代的经典语言,其中体现出的编程思想的美感使深入学习过它的人为之感叹;且不论过时与不过时的老掉牙问题,单从学习的角度说,这是一门非常值得品味的语言,尽管我认为无论过去、现在还是将来,天底下不存在哪一门语言非学不可才能成为高手(思想最重要,“不会XXX语言不算真正的高手”之类的言论实在无聊之至),然而假如在这个时代你错过了C++,我还是有一点点遗憾,究竟你错过了一个共享经典的机会(一点点而已,可能有些主观,呵呵)。至于实用性,自然,C++不是唯一的选择(Andrew Koenig 曾在《C++沉思录》中多次强调C++设计的最终基准是实用性,但我们很多人在开发桌面应用程序时似乎更喜欢VB、Delphi等RAD)。总言之,这个方面我们答应会有多种选择,但从思想的深化(学习方面)角度上说,C++或许会给你相当多的启发,即使你实际开发中更喜欢使用其它语言的RAD。

1.本系列的定位

1.Position

这个系列主要是面向C++的“纯”初学者,他们头一回接触C++,甚至同时也是头一回走进Programming的世界。现在市面上C++的好书很多,网络又发达,所以现今的初学者比较有福气,不像当初,找得一本C++书已经是挺“可以”了,哪里知道什么好与不好,书再烂,怀疑的也是自己的脑子(恐怕连“烂书”这个词还没发明吧)。现在不同,读者不难找到一本轻便抑或详尽的书籍结合自身情况学习。但究竟书籍本身要考虑到内容组织的系统化,因而不可避免地,暂时或者永久性地存在一些读者热切想知道但却未出现的盲点,或者是略有提及但却不深入。假如身边有位老师,自然不成问题,但或许更多的爱好者们都是像我这样自己“过来”的(呵呵),碰到茫然之处便头脑发痒,自己又搔不着,多少有些许不爽。本系列的目的就是“搔痒”,痒非必是伤,因此解决的可能是一些过来人看来无关紧要的甚至“弱智”的问题,但我相信这都是许许多多的初学者都非常想了解却无从寻觅的东西。至于哪些是“东西”哪些不是,可能判定有些主观,我暂且从自己学习的曲线中搜寻;同时也非常希望朋友们针对自己入门过程中的困惑与我通过邮件联系(kusk@163.com),至于本人,同样也是一位初学者,只不过可能混的时间久了,稍有些经验而已,但错误可能会出现,也非常欢迎指正提出:你的关注将是我最大的动力^_^

2.什么是C++

2.What is C++?

可能现在还会有许多初学者分不清C++、VC、MFC、C++ Builder这些基本的概念,经常听到类似于“VB还不够强,我明天要开始学VC”这样的言论,有些书店也还是错误地赫然挂着“Visual C++语言”、“C++ Builder语言”的分类牌。其实C++指的仅仅是一门计算机语言,它规定了书定程序的语法,例如:如何使用变量、常量,如何撰写语句,如何让计算机作出判定,如何让某些特定的功能反复执行若干次(循环),如何把一些复杂的“打包”成一个简单的模块(函数/子程序)以便调用,等等。可以说,语言是独立于计算机的,它只是一系列人为制定的规则,假如你愿意的话自然也可以拿出纸笔自己设计一门D++之类的新语言。

不过单有规则还不行,要真正能写出程序并投入运行,你应该让计算机学会用上你的D++语言。目前的计算机绝大多数只能直接识别二进制的机器语言,所以通常的作法是写一个负责翻译的程序,它可以自动地把你输入的D++程序转化成二进制程序,这样计算机就可以执行它了。这个负责翻译的程序,通常我们称为编译器。当一门语言流行开之后,会有一些软件厂商注重到:噫,D++似乎很受欢迎啊,我们应当马上推出D++的编译器占领市场。于是各个厂商推出了自己的D++编译器,为了区分,不同厂商的编译器都有不同的名字,例如,可能会是“Visual D++”、“D++ Builder”、“Better D++”等等。

通常最原始的编译手段是命令行方式,假如我想编译一个hello.dpp的源程序,那么我可能要进入DOS命令行方式,假如编译器的名字是dpp32,我需要键入类似于dpp32 hello.dpp hello.exe之类的麻烦的东西指示它。假如有多个源文件,还要作更新编译、链接等动作,可能还要根据不同的需要加上许多晦涩难记的参数,这样一来就会十分麻烦。好一点的话可以写一个称为maikfile的文件,它可以把这些设定储存好,让编译器自己识别而不必每次键入。但命令行方式的往返切换还是不够快捷,因此聪明的编译厂商通常会为我们非凡设计一个称为“集成编译环境(IDE)”的编译平台:它可以看作一个附加了许多方便我们使用D++的功能的编辑软件,例如,我们可以不必切换回命令行方式后动编译,而只要单击“编译”图标或者按下相应的快捷键,编译器就会自动为我们编译,当然我们也可以在这个软件中设定编译的选项。此久,这个编辑软件还非凡加入了一些好用的功能,比如它会聪明地将D++程序中的要害字显示成另一种颜色,数字又是另一种颜色……这样做的好处是便于我们分析程序,及时发现输入错误,等等。强大的编译环境还集成了代码分析、跟踪调试等功能,比命令行模式好用多了。但别忘了,真正“造”出程序的,还是那些最原始的命令行程序。

除此以外,由于现在的操作系统日趋复杂,假如从零开始编制程序,往往要做许多重复而无用的劳动。因此各个编译厂商通常会在编译平台中提供一套已经完成的程序库,用于构建程序的相关联模块的集合称为应用程序框架,Windows下常见的应用程序框架有MFC、VCL等,还有一些跨平台框架,如Qt。框架可能集成在编译平台中,也可以单独发行。当然,框架的使用是可选择的,VC中附带了MFC,你可以使用它,也可以不用。

3.学习编程的一般步骤

3.How to Learn Progrmming Step by Step

学习语言到应用编程,大约可以分为三步:1.学习语言的语法、标准库、思想;2.学习相关操作系统的API(应用程序编程接口);3.学习类库使用。有一定经验后,三者可以交替进行,相互加深。此外还要学习一些基础理论,像设计模式、算法与数据结构等。

附:另外几个常见的概念——答neverdown1983网友问

问:标准库和类库有什么区别? 那个应用程序编程接口(API)能不能解释一下?谢谢了!

我想先说说库(Library)吧,想必这个概念诸位都有所了解,在下多罗嗦几句再说一下:所谓库,就是许多程序代码的集合:编程的时候,会有许多常用的功能,假如每个用到这些功能的程序都要从头写一遍,则会出现无谓地重复劳动;因此人们把这些常用的功能编写好,并按一定的逻辑关系组织、封装起来,便于编程时直接调用,就成为了库。

库中的程序模块是怎么放置的呢?

嗯,首先,我们很自然会想到把那些常用的功能封装成一个个相应的函数,这样程序要用到这些功能的时候,我们就调用相应的函数。这些函数组成的库自然可以叫做函数库,显然函数库的思想是面向过程的;

其次,我们也可以把要实现的任务封装成一个个类(class),例如要某个库包含文件操作的功能,设计者可能会写一个File类,它或许会有open、close、reset、read、write等方法,内部也可能会有一些保存文件信息的数据结构,等等。这些由各种类组成的库称为类库,它是面向对象的。

因此,按组织思想分,库可以分为函数库、类库等。

至于标准库与非标准库,则是另一种分类方式。假如某个库是C++语言标准所“规定”要有的,如STL(即标准模板库,我们在C++中常用的vector、list之类的容器以及相关算法都属于STL的一部分),是语言中的一部分,则称为C++的标准库(被标准化了的,无论VC、C++ Builder还是其它什么C++编译平台,都要求包含它才算是“真正”的C++)。当然,标准库的范围比较窄,除此之外的诸如MFC、VCL、Qt等都是其它软件厂商(或组织)自己编写的,不是C++标准所规定(单纯介绍C++的书也不会介绍它们),不是语言的一部分,所以不是标准库。

应用程序编程接口(Application Programming Interface)是操作系统为程序员提供的功能。你要在一个操作系统上编写程序,一举一动都要依靠操作系统:你要读一个文件,或者在屏幕上画一个点,最终都是要求操作系统替你实现的,而这些“要求”的方式,或者说是“与操作系统打交道”的方式,就是通过编程接口。在DOS中,程序员要实现的功能最终是通过中断的方式“告诉”操作系统,从而让其替你完成的,因此可以说中断是DOS系统的API;到了更复杂的Windows系统,由于中断过于简单与低级,所以Windows为程序员提供的是一系列的函数,这些函数已经被编译好,大多放在各个随系统一起安装好的.dll文件中,大多数情况下,Windows下的编译器会将我们的程序与这些函数库链接好;很自然地,它们就被称为API函数。Windows的API函数成千上万,与DOS区区十几几十条的中断相比实在是复杂多了,从而提供了比DOS更多、更完善的服务。不过学习的时候不可能把这些函数的名称、调用方法、参数表之类全部记得一清二楚,一般对部分最常用的函数有个大概的把握就可以;其它的一般是随用随查,这方面MSDN是一个相当好(而且大概也是最权威)的资料集。

上一篇:C++习题与解析(类和对象-01) 人气:370
下一篇:C++习题与解析(类和对象-02) 人气:354
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成