首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础到底应该如何入门学习C/C+语言,他是这么做的。

如果你将来打算从事C++方向的开发,也建议没有编程基础的同学先从C语言开始学习,掌握C语言及面向过程的编程思想,接着再学习具有一脉相承的C++语言,不仅可以科学的学习两门计算机界中最主流的开发语言,更可以体会到软件开发思想发展的变化,起到到触类旁通的效果。

如何自主学习C++?

首先是一本好的C++书籍(Accelerated C++, C++ Primer),然后以及尽量多的完成书籍的习题,可以帮助完成C++语法的学习。

虽然部分书籍涵盖了标准库,但是不够完善,这个时候你可以选择在线查阅C++标准库这种泛型的学习方式,也可以选择阅读《C++标准库》的方式进行学习。通过这样的步骤,你应该可以完成C++的初步学习了。

然后,由于C++是一门系统级语言,需要学习操作系统的时候,才会明白栈与堆、内存管理等更深层次的含义。但是,在明白这些概念之前不会妨碍你利用C++做一些事情,比如写一个简单的XML Parser。这个时候,你应该会发现很多问题,如效率,代码规范等,这个时候,你可以研究Effective C++,Google C++ Code Standard等,只有自己犯了错,回过头反省才会更加深刻。

随后,你可以更加深刻的去思考C++,你需要阅读《The Design and Evolution of C++》。这本书的阅读,会教会你很多,是对你影响最大的C++书籍。如果你对C++编译器的一些细节有兴趣,深入C++对象模型可以推荐。如果你对STL的一些实现有兴趣,可以去翻翻STL源代码(很多人推荐STL源码剖析,但是我没有阅读过,我没有办法发表是否应该推荐的观点,列出来供你自行判断是否应该阅读)。

到这一步骤,我想你应该可以称为C++ Programmer了,剩下的就是实践中发现问题,然后补足自己。此外,由于C++博大精深,应用的范围多如牛毛,特定方向所需要的知识未列举。比如你要研究Android的NDK什么的,那就是属于你后面的事情了。

学习C++前默认大家已经具备C语言的基础,如果还没有学过C语言,建议大家先学习C语言

C++语言是在C语言基础之上为支持面向对象而设计的这么一套程序语言,而面向对象在C++中的体现就是类的机制,所以C++也称作是“带类的C语言的”。那么什么是类?

我们不妨先从C语言的结构体说起,相信大家还有印象。

比如C语言代码

struct?stu

{

int?num;

char?sex;

int?math_score;

int?en_score;

int?c_score;

};

int?main()

{

struct?stu?A;

return?0;

}

上面的C代码定义了一个struct stu的结构体类型,里面有五个成员变量,然后在主函数中又定义了这种结构体类型的一个变量A,这是我们熟悉的C语言代码,其实呢,C++中的类也类似,只不过比C的结构体高级了一些,不叫结构体了,叫类,而且呢,里面除了可以包含很多个基本变量类型以外,还可以包含很多函数,对于第一节课的初步了解,我们大体了解如此就可以了。例如对应的C++代码则为:

class?stu

{

int?num;

char?sex;

int?math_score;

int?en_score;

int?c_score;

int?total_score()

{

return?math_score+en_score+c_score;

};

};

int?main()

{

class?stu?A;

return?0;

}

大家仔细对比看看,C语言里用struct定义,C++用class定义,其次C++中的class里多了一个函数,这就是C++中类不一样的。

另外在叫法上也不同,C++类中的成员变量叫做属性,类里的函数叫做方法。即类拥有属性与方法两部分。

当然,除此以外,还有很多不一样的地方,我们今后慢慢展开介绍。

要是你是属于没有C语言基础的小伙伴,或是对编程C语言感兴趣的小伙伴可以私信我,免费获取这些资源呦,还会定期发布相关学习笔记和源代码~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201215A096GJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com