c++编程问题。本人新手学编程先学什么。

C++ 构造函数问题 求助,本人新手,希望各位前辈帮忙看下,下面两段构造函数代码是什么意思?-问 _星空生活网
你现在浏览的是: & > &
C++ 构造函数问题 求助,本人新手,希望各位前辈帮忙看下,下面两段构造函数代码是什么意思?
你可能感兴趣的内容?&&&计算机与互联网
通过游戏编程实战教新手学C++编程
《通过游戏编程实战教新手学C++编程》从游戏视角来介绍C++,既独具匠心又妙趣横生。即使读者初学C++,还没有任何编程经验,也可以在本书作者的循循善诱下掌握C++的各种概念与技巧。书中每章都涵盖一系列相关的主题,并在结尾部分编写一个简单的文本游戏来巩固所学的概念。随着学习的深入,读者将学会如何组织编程项目,如何将问题分解为可管理的子问题块,以及如何精炼代码。最后一章的游戏将综合运用前面章节介绍的概念与技巧,创建一个相对复杂的游戏。读完本书,您将为C++开发打下坚实的基础。
《通过游戏编程实战教新手学C++编程》从游戏视角来介绍C++,既独具匠心又妙趣横生。即使读者初学C++,还没有任何编程经验,也可以在本书作者的循循善诱下掌握C++的各种概念与技巧。书中每章都涵盖一系列相关的主题,并在结尾部分编写一个简单的文本游戏来巩固所学的概念。随着学习的深入,读者将学会如何组织编程项目,如何将问题分解为可管理的子问题块,以及如何精炼代码。最后一章的游戏将综合运用前面章节介绍的概念与技巧,创建一个相对复杂的游戏。读完本书,您将为C++开发打下坚实的基础。
 我要买:
《通过游戏编程实战教新手学C++编程》内容相关
本书适合任何想编写游戏的读者,主要针对初学者,并假设读者之前没有任何编程经验。如果您可以熟练使用计算机,则马上可以开始您的游戏编程之旅。
《通过游戏编程实战教新手学C++编程》精彩节选
全世界数以百万计的程序员都在使用C++。它是编写计算机应用程序的最流行的语言之一,而且是编写大预算计算机游戏的最流行的语言。
暂时没有书评!
Michael Dawson,游戏编程图书的作者。他为UCLA Extension、The Digital Media Academy和The Los Angeles Film School开设并执教游戏编程课程,指导学生游戏编程的艺术与科学。另外,他的多部著作已成为国内多所大学的必读书目。著作包括《通过游戏编程实战教新手学C++编程》、Python Programming for the Absolute Beginner、C++ Projects: Programming with Text-Based Games以及Guide to Programming with Python等。
多品类齐全,轻松购物
快多仓直发,极速配送
好正品行货,精致服务
省天天低价,畅选无忧我为什么不建议编程初学者学习C++【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:301,243贴子:
我为什么不建议编程初学者学习C++收藏
众所周知,C++是一个多范型编程语言。面向对象在C++语言中占有相当大的比例。面向对象最重要的作用在于对事物的抽象。而C++本身是一个“纯粹”的语言,其本身不包括太多与外部环境有关系的类库。所以初学C++的人,如果不了解操作系统的很多东西,是没法写出什么可以让初学者感到有实际用处的程序。如果只会C++,只能是做纯思维的锻炼,但是由于缺乏一些具体的东西,而且也没有可能遇到很复杂的业务场景,导致没什么东西需要去抽象的。这导致初学者容易产生以下几种想法:1.我学C++学的这么辛苦,怎么什么都编不出来,你看人家学Java的,学C#的,学ASP的,学PHP的,等等。2.C++到底能干什么?3.学了这么辛苦,还什么都做不出来,编程序太难了,不适合我,我放弃了难道真的是C++什么都做不出来吗?当然不是了!那为什么会这样?就是因为C++太“纯粹”了。C++必须配合与操作系统打交道的库,才能实际上做出来点什么东西。而C++的库却太多了,不同的方向有不同的库,同一个方向,也有无数个库,初学者根本不知道有这些库,知道了,更迷茫,到底选择哪个库?而Java的却相当于有自己的官方库,学习了基本的Java语法以后,马上就会学习点别的东西,比如与数据库打交道类,比如Swing,比如Socket之类的东西,很快就可以做出点对初学者来说可以看到见摸得着的东西,容易产生成就感,不会有太强的挫折感。而且很快就遇到了很多“具体”的事物,所学习的面向对象的思想,可以用来抽象和表达这些具体的事物,使得其学习不会给初学者以“空中楼阁”,“纯理论”的感觉,更接地气的感觉。个人觉得C++没有自己的官方库,确实是其在某些方面的发展声势不如Java的一个很重要的原因! 但是C++要跨平台,提供很多东西,也确实有很多困难。不得不承认,C++的优势在于其对底层接近的一些事物的抽象能力,同时有保持了很高的性能。那这些与底层接近的事物,在常见的操作系统上都是以非面向对象的API形式提供给用户的。比如线程,进程,socket等等。所以要想去自由使用C++去进行抽象的前提,就是去对这些底层的事物有了认知以后,才能去做。那么也就意味着你必须去先学习操作系统的API,了解操作系统的东西以后,再结合具体的业务场景,这个时候,你才能认知到抽象的价值,那么才能体会到C++的美妙。所以Linux Application Development - 2nd Edition读起!
请问大神,学c++的话,编译原理、算法数据与结构、操作系统、离散数学这些有没有必要学习?
楼主你好。我是通信工程大二的学校教的c语言和C语言版本的基础版的数据结构,然后我自己又零基础啃了一本c++ primer plus,现在在学MFC,感觉现在好迷茫,因为MFC做不出什么很好的界面,目前想放弃了。。。 想转学JAVA或者c++,我很多同学也在学php,楼主能不能给点建议呢。。
我比较赞同楼主,我先学的是Java,Java的确很容易做出点给人成就感的东西,也是最初学编程的动力,但是后来感觉不能直接生成exe很不爽,别人必须装虚拟机才能运行你的东西,所以开始学C++
看了之后我有好多想法
c++的某些崇拜者接近于nc了,总是唆使初学者架空中楼阁,他们自己的成功能复制给任何人?不了解文件io,去看看primer里cin cout的描述,不知所云,不要指望某本书从底到上讲的清清楚楚,如果有那也不是1000页能写完的,在校生还有时间去博览刷选多本书,有生活压力的还是考虑下时间成本吧,不是你不努力,而是大家都在努力,别人有先天上优势凭什么公司就要看中你,你文曲星转世?
学编程,更多要学的是编程的思维方式,即如何在特定的工具和规则下解决问题的方式。语言只是一个工具。学习语言只是帮助更好地更快的掌握编程的思维方式而已。
初学者学习C++不是一个好的开始。建议从比较简明的C#或JAVA。
c++,学C++开发选博为峰,技术新,学习氛围轻松,随到随学免费试学,学费低,学时短,博为峰c++!
楼主见过谁推荐初学者学c++???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
C-like都不合适。会让用户错估难度。
黑得漂亮。
@i_am_a_frog“语言是工具”的说法已经滥了,具体不表。关于其它相关的学习语言的一些观点,王垠早期的一篇(偶尔没有多少废话)的文章却有那么些代表性:这篇文章放在这里是为了说明,即便是对语言实现原理了解得比初学者多得多的用户也未必清楚一些简单的现象。顺便,虽然未必充分,这里关于语言和算法、运行时性能等问题的观点倒是值得参考,特别适合拿来对付那些连算法形式定义和复杂度类都一问三不知就在到处胡扯“算法”“编程思路”如何“本质”的——当修正拳用。当时他没有切实认识到工具论的错误,在“如何掌握程序语言”这里也说不出多少东西来,乃至于不得不拿自己实现来说事(不管怎么说,抽象失败不算是很光彩的事情)。结果后来又一贯地自己打脸修正了:,虽然比喻仍然不怎么恰当。(这里引用的Bjarne Stroustrup的观点应该是错的最离谱的了,其它不少情况Stroustrup倒是比Gosling之流靠谱得多。)
新手学python吧
学易语言怎么养?我这几天刚接触。
你得意思是先要学API,然后再学C++吗?
交流电不太懂,能学C++吗
lz,我应该去哪里学好?我不知道哪个学校好。。。
现在c++primer看完,想找软件开发的工作,继续需要学什么?买了一本鸟哥私房菜准备寒假看看
了解操作系统的东西以后,再结合具体的业务场景,这个时候,你才能认知到抽象的价值,那么才能体会到C++的美妙意思是建议新手去学C语言了,我这话是针对现在流行的操作系统来说楼主远远称不上学术派,也不是实战派按照楼主这个逻辑吗,要了解操作系统的东西,得先去学习下硬件抽象了然后继续这个逻辑用下去?生物依赖化学化学依赖物理物理依赖数学数序依赖哲学抽象没有价值,新手只需要知道有屏障,被圈在一个小圈子里面就是最好的像培养基里面的细菌,永远不能跑出青霉素的范围程序语言是个和计算机(大型集成电子电路)无关的东西
初三狗直接上c++路过
但是个别大学就这样做了。。大一完全0基础学c++。。。。             ——不以风骚惊天下,就以腹黑动世人。
美国很多大学都是c++入门
我是java呢?还是嵌入式呢?正在培训都可以学。大二学生。
登录百度帐号商品名称:
评价得分:
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
此评价对我
多品类齐全,轻松购物
快多仓直发,极速配送
好正品行货,精致服务
省天天低价,畅选无忧51CTO旗下网站
C++新手之培养良好的编程风格
本文介绍的是C++新手应该遵守的一些编程的风格,希望对你有帮助,一起来看。
作者:佚名来源:互联网| 15:49
内功深厚的武林高手出招往往平淡无奇。同理,编程高手也不会用奇门怪招写程序。良好的编程风格是产生高质量程序的前提。 下面以C++为例,来给大家介绍。
一、&命名约定
有不少人编程时用拼音给函数或变量命名,这样做并不能说明你很爱国,却会让用此程序的人迷糊(很多南方人不懂拼音,我就不懂)。程序中的英文一般不会太复杂,用词要力求准确。匈牙利命名法是Microsoft 公司倡导的[Maguire 1993],虽然很烦琐,但用习惯了也就成了自然。没有人强迫你采用何种命名法,但有一点应该做到:自己的程序命名必须一致。
以下是我编程时采用的命名约定:
(1)宏定义用大写字母加下划线表示,如MAX_LENGTH;
(2)函数用大写字母开头的单词组合而成,如SetName, GetName ;
(3)指针变量加前缀p,如*pNode ;
(4)BOOL 变量加前缀b,如bFlag ;
(5)int 变量加前缀i,如iWidth&;
(6)float 变量加前缀f,如fWidth ;
(7)double 变量加前缀d,如dWidth ;
(8)字符串变量加前缀str,如strName ;
(9)枚举变量加前缀e,如eDrawMode ;
(10)类的成员变量加前缀m_,如m_strName, m_iWidth ;
对于int, float, double 型的变量,如果变量名的含义十分明显,则不加前缀,避免烦琐。如用于循环的int 型变量i,j,k ;float 型的三维坐标(x,y,z)等。
二、&使用断言
程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查&不应该&发生的情况。以下是一个内存复制程序,在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。
&void&memcpy(void&*pvTo,&void&*pvFrom,&size_t&size) &{ &void&*pbTo&=&(byte&*)&pvTo; &void&*pbFrom&=&(byte&*)&pvF &assert(&pvTo&!=&NULL&&&&pvFrom&!=&NULL&); &while(size&-&-&&&0&) &*pbTo&+&+&=&*pbFrom&+&+&; &return&(pvTo); &}&
assert 不是一个仓促拼凑起来的宏,为了不在程序的Debug 版本和Release 版本引起差别,assert 不应该产生任何副作用。所以assert 不是函数,而是宏。程序员可以把assert 看成一个在任何系统状态下都可以安全使用的无害测试手段。
很少有比跟踪到程序的断言,却不知道该断言的作用更让人沮丧的事了。你化了很多时间,不是为了排除错误,而只是为了弄清楚这个错误到底是什么。有的时候,程序员偶尔还会设计出有错误的断言。所以如果搞不清楚断言检查的是什么,就很难判断错误是出现在程序中,还是出现在断言中。幸运的是这个问题很好解决,只要加上清晰的注释即可。这本是显而易见的事情,可是很少有程序员这样做。这好比一个人在森林里,看到树上钉着一块&危险&的大牌子。但危险到底是什么?树要倒?有废井?有野兽?除非告诉人们&危险&是什么,否则这个警告牌难以起到积极有效的作用。难以理解的断言常常被程序员忽略,甚至被删除。[Maguire 1993]
以下是使用断言的几个原则:
(1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
(2)使用断言对函数的参数进行确认。
(3)在编写函数时,要进行反复的考查,并且自问:&我打算做哪些假定?&一旦确定了的假定,就要使用断言对假定进行检查。
(4)一般教科书都鼓励程序员们进行防错性的程序设计,但要记住这种编程风格会隐瞒错误。当进行防错性编程时,如果&不可能发生&的事情的确发生了,则要使用断言进行报警。
三、&new、delete 与指针
在C++中,操作符new 用于申请内存,操作符delete 用于释放内存。在C 语言中,函数malloc 用于申请内存,函数free 用于释放内 存。由于C++兼容C 语言,所以new、delete、malloc、free 都有可能一起使用。new 能比malloc 干更多的事,它可以申请对象的内存,而malloc 不能。C++和C 语言中的指针威猛无比,用错了会带来灾难。对于一个指针p,如果是用new申请的内存,则必须用delete 而不能用free 来释放。如果是用malloc 申请的内存,则必须用free 而不能用delete 来释放。在用delete 或用free 释放p 所指的内存后,应该马上显式地将p 置为NULL,以防下次使用p 时发生错误。示例程序如下:
void&Test(void) &{ &float&*p; &p&=&new&float[100]; &if(p==NULL)&return; &&&delete&p; &p=NULL;&&&p&=&new&float[500]; &if(p==NULL)&return; &&&delete&p; &p=NULL; &}&
我们还要预防&野指针&,&野指针&是指向&垃圾&内存的指针,主要成因有两种:
(1)指针没有初始化。
(2)指针指向已经释放的内存,这种情况最让人防不胜防,示例程序如下:
class&A &{ &public: &void&Func(void){&} &}; &void&Test(void) &{ &A&*p; &{ &A&a; &p&=&&a;&&} &p-&Func();&&}&
四、使用const
在定义一个常量时,const 比#define 更加灵活。用const 定义的常量含有数据类型,该常量可以参与逻辑运算。例如:
const&int&LENGTH&=&100;&&const&float&MAX=100;&&#define&LENGTH&100&//&LENGTH&无类型 &#define&MAX&100&//&MAX&无类型&
除了能定义常量外,const 还有两个&保护&功能:
一、强制保护函数的参数值不发生变化
以下程序中,函数f 不会改变输入参数name 的值,但是函数g 和h 都有可能改变name的值。
void&f(String&s);&&void&g(String&&s);&&void&h(String&*s);&&main() &{ &String&name=&Dog&; &f(name);&&g(name);&&h(name);&&}&
对于一个函数而言,如果其&&&或&*&类型的参数只作输入用,不作输出用,那么应当在该参数前加上const,以确保函数的代码不会改变该参数的值(如果改变了该参数的值,编译器会出现错误警告)。因此上述程序中的函数g 和h 应该定义成:
void&g(const&String&&s); &void&h(const&String&*s);&
二、强制保护类的成员函数不改变任何数据成员的值
以下程序中,类stack 的成员函数Count 仅用于计数,为了确保Count 不改变类中的任何数据成员的值,应将函数Count 定义成const 类型。
class&Stack &{ &public: &void&push(int&elem); &void&pop(void); &int&Count(void)&const;&&private: &int& &int&data[100]; &}; &int&Stack::Count(void)&const&{ &++&&&pop();&&return& &}&
五、&其它建议
(1)不要编写一条过分复杂的语句,紧凑的C++/C 代码并不见到能得到高效率的机器代码,却会降低程序的可理解性,程序出错误的几率也会提高。
(2)不要编写集多种功能于一身的函数,在函数的返回值中,不要将正常值和错误标志混在一起。
(3)不要将BOOL 值TRUE 和FALSE 对应于1 和0 进行编程。大多数编程语言将FALSE定义为0,任何非0 值都是TRUE。Visual C++将TRUE 定义为1,而Visual Basic 则将TRUE定义为-1。示例程序如下:
BOOL& && &if(flag)&{&&if(flag==TRUE)&{&&if(flag==1)&{&&if(!flag)&{&&if(flag==FALSE)&{&&if(flag==0)&{&&
(4)小心不要将&= =&写成&=&,编译器不会自动发现这种错误。
(5)不要将123 写成0123,后者是八进制的数值。
(6)将自己经常犯的编程错误记录下来,制成表格贴在计算机旁边。
C++/C 程序设计如同少林寺的武功一样博大精深,我练了8 年,大概只学到二三成。所以无论什么时候,都不要觉得自己的编程水平天下第一,看到别人好的技术和风格,要虚心学习。本章的内容少得可怜,就象口渴时只给你一颗杨梅吃,你一定不过瘾。我借花献佛,推荐一本好书:Marshall P. Cline 著的《C++ FAQs》[Cline 1995]。你看了后一定会赞不绝口。会编写C++/C 程序,不要因此得意洋洋,这只是程序员基本的技能要求而已。如果把系统分析和系统设计比作&战略决策&,那么编程充其量只是&战术&。
如果指挥官是个大笨蛋,士兵再勇敢也会吃败仗。所以我们程序员不要只把眼光盯在程序上,要让自己博学多才。我们应该向北京胡同里的小孩们学习,他们小小年纪就能指点江山,评论世界大事。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条关注热点头条关注
24H热文一周话题本月最赞
讲师:92154人学习过
讲师:96666人学习过
讲师:132812人学习过
精选博文论坛热帖下载排行
本书结合JSP和Servlet的最新规范,从基本的语法和规范入手,以经验为后盾,以实用为目标,以实例为导向,以实践为指导,深入浅出地讲解了JS...
订阅51CTO邮刊

我要回帖

更多关于 新手如何学编程 的文章

 

随机推荐