- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++常见问题【荐】.doc
引言篇1.学习C++是否必须先了解C?2.怎样开始学习C++?3.改进C++程序的最好方法是什么?4.对于小的程序C优于C++,对吗?5.C是C++的子集吗?6.C++与C有什么区别?7.为什么用C++产生的Hello World的程序代码要比用C产生的长十倍?8.什么是面向对象的程序设计(OOP)?1.学习C++是否必须先了解C? 不是,C++与C的公共部分比C还容易学习,由于C++比C的类型检查更严格更富于表现力,因此产生的错误就更少,又由于C++能使你毫不困难地描述更多的事物,因此所需的诀窍就更少,而且可利用的库也要比C多.所要学习的C++子集并不是C的全部.2.怎样开始学习C++? 很显然,这非常依赖于你已经掌握的知识和你学习C++的动机.如果你是个编程新手,我强烈建议你找一位有经验的程序员来帮助你.否则概念性的错误以及程序实际执行过程中所发生的问题将使你的学习大受挫折. 你需要一本C++学习教程.该教程起到在线帮助文档的作用. 其原因是带有足够多代码的编程语言和库文档对概念的解释不见得就很清楚。 当选择一本书时,要选将标准C++和标准库结合在一块描述的书.如,象字符串的输入应这样; string s;// 标准C++风格 cins; 而不要象这样: char s[MAX]; /* 标准C风格 */ scanf(%s,s); 多看看有丰富编程经验的程序员推荐的书,记住,对任何人来说没有哪一本是最好的,看看ACCU(C和C++用户协会)站点上的书评. 为了写出合乎习惯的C++语句,应避免简单地用你以前学过的语言的风格写C++代码,仅仅通过改变句子排列顺序是得不到什么进步的.看看《Learning Standard C++ as a New Language》一书中关于如何学习C++的讨论内容.3.改进C++程序的最好方法是什么? 这我没法说,主要取决于你如何用它,有很多人都轻视抽象类和模板.相反他们过多地使用casts和宏.4.对于小的程序C优于C++,对吗? 我没有这样的观点,我还未见过在不缺好的C++编译器的情况下,有优于C++的C小程序5.C是C++的子集吗? 从严格的数学意义上讲,C不是C++的一个子集.有些程序是有效的C程序却不是有效的C++程序,甚至在一些代码的编写方面,C与C++也有不同的意思.不过C++支持C所支持的每一种编程技术.每个C程序从本质上来讲也都可以相同的方式用C++来编写,并且有着相同的时间和空间效率.在几小时内将几万行符合ANSI标准的C程序转换成C++风格的C++程序是常见的.因此C++是ANSI C的超集就像ANSI C是KR C的超集而ISO C++又是C++的超集一样. 一般的C程序都符合C++语法,比如Kernighan和Ritchie合著的《The C Programming Language》(第二版)中的任何一个例子也都是C++程序.有关C/C++兼容的问题例子: int main() { double sq2=sqrt(2); /* 不是C++程序:调用了一个未声明的函数 */ int s=sizeof(a); /* 在C中用 sizeof(int) . */ } 调用一个未声明的函数是C中不好的风格而在C++中则是不合法的. void f(); void g() { f(2); } 在C语言中 void类型的指针能被转换为任意类型的指针,分配内存的典型做法是调用函数malloc()..... void * malloc(size_t); void f(int n) { int *p=malloc(n*sizeof(char)); /*非C++用法,C++是用new分配内存的*/ char c; void* pv=c; int *pi=pv; /*隐含有将void类型指针转换为int类型的指针,在C++中不用*/ } 注意隐含地将void类型指针转换为int类型的指针会引起潜在的alignment错误. 从C转换到C++时,需注意C++的关键字要比C来的多 int class =2; /* 在C中是正确的, 在C++中则有语法错误*/ int virtual=3; /* 在C中是正确的, 在C++中则有语法错误*/ 除了一些象上面所举的例子外(《The C++ Programming Language》(第三版)的附录B中详细列出了标准 C++与C的这类区别)C++是C的一个超集(附录B可以从网上下载)6. C++与C有什么区别?
文档评论(0)