1.初学c++,比较困惑的问题。
1.c++是一门实用的语言吗?
c++是一个实用的工具,它很有用。
在工业软件世界中,c++被视为坚实和成熟的主流工具。它具有广泛的行业支持和好批。
2.面向对象编程在c++中的作用?
我们要开发一个大型、复杂的应用程序或者系统。使用面向对象编程是最好的方式。
oo吹嘘:现代软件行业,需求越来越复杂。面向过程编程无法满足客户需求,这时面向对象编程就产生了。
c++支持oo编程。c++也可以用作传统c语音的加强。但是如果你像使用c语言那样使用c++,你就无法体现面向对象
编程的优势。
3.泛型编程与c++。
c++支持泛型编程。泛型编程是一种不损失性能情况下最大限度代码重用的技术。
如果泛型组件被设计的很完美,组件非常容易使用,。泛型编程隐藏了很多复杂的细节。它的一个特征是,你使用越多的
泛型编程,程序运行越快。
所以在开发一个复杂的项目时,你不用权衡是否使用泛型编程。泛型编程能让你的程序更快,错误更少。99%的程序员不
用自己设计泛型组件,但是任然能够很好的使用这些组件。开发一个泛型编程的过程:你嘲笑自己,抓住自己的头,突然有一
个想法,然后凌晨3点起来一遍又一遍的修改自己的代码。不愿意思考,不想解决难题的人,不适合自己开发泛型编程。
幸运的是,目前有特别成熟的泛型组件,stl和boost,你只需要知道如何使用就ok了。
4.c++是否比其他语言好(比如java、python)?
停止问这种问题。
99%的情况下,编程语言的选择根据实际的业务,而不是技术的考虑。事实上起作用的是编程环境法律性、企业的政治和
文化性。这些都比单纯的技术重要。
5.需要多久去学习c++?
熟练使用oo/c++需要6-12个月。如果有专家指导,需要的时间更短。如果你维护一个比较好的c++本地库,需要的时间
也短。成为一个指导别人的专家需要大概3年。
那些三天打鱼两天晒网,没有自我驱动的人,永远也学不会。你需要有自我激励能力,学习新的事物,是改变你的想法,
改变你心里模型最好的方式。
学习c++最重要的2件事情:
A。善于思考,自己做自己的导师
面向对象编程的想法和技巧,是通过你不断思考,出现在你脑海中,并被你掌握的,并不是那个老师教出来的。多和那些
有自己想法的人交流,理解他们的想法。为什么要这么写,这么写有什么好处。模拟他们的代码,把他们的技术变成自己的。
B。推荐书籍
初级:
Lippman, Lajoie and Moo, C++ Primer, Fourth Edition, 885 pgs, Addison-Wesley, 2005, ISBN 0-201-72184-1.
Stroustrup, The C++ Programming Language, Third Edition, 911 pgs, 1998, ISBN 0-201-88954-4.
进阶:
Cline, Lomow, and Girou, C++ FAQs, Second Edition, 587 pgs, Addison-Wesley,ISBN 0-201-30983-1.
Meyers, Effective C++, Second Edition, 224 pgs, Addison-Wesley, 1998, ISBN 0-201-92488-9.
Meyers, More Effective C++, 336 pgs, Addison-Wesley, 1996, ISBN 0-201-63371-X.
6.虚函数(动态绑定)是oo/c++的核心吗?
是的!
如果没有虚函数c++将不会是面向对象的。
1.初学c++,比较困惑的问题。的更多相关文章
- 如何初学python?资深程序员浅谈,教你学会入门python
我认为python应该是现在市面上最简单,也是最值钱的一门编程语言,所以学习的人是越来越多,但是,如何初学python?这个问题困扰着很多初学python的人,今天,给大家简单聊聊这个话题. 我曾经也 ...
- 【第一课】神奇的Context
初学Android的困惑 初学Android跳转页面的时候,往往教程里是这么写的: Intent intent = new Intent(); //MyActivity就是当前的Activity,It ...
- C#创建无窗体的应用程序
示例程序 这是初学C#时困惑了很久才解决的问题,突然想起来拿出来和大家分享. 当初我是这样做的: 1. 在窗体初始化时(构造函数里面),添加一句This.Visible = false; 2 ...
- c#问答篇:对象与引用变量-----初学者的困惑
转自:http://www.cnblogs.com/huangyu/archive/2004/08/02/29622.html 从宏观的角度来看,对象是类的实例.比如: //定义一个名为Someone ...
- 初学Direct X(7) ——位图的旋转,缩放以及平移
初学Direct X(7) --位图的旋转,缩放以及平移 本文旨在实现通过D3DXMatrixTransformation2D函数实现位图的旋转,缩放以及平移操作,但是具体的原理部分会在后面进一步的探 ...
- 答好友困惑:Java零基础如何入门,不知道怎么学,迷茫ING
作者:程序员小跃 几个星期之前,我在知乎上看到一个提问,说是:对于完全没有经验零基础自身的数学底子也很弱学习Java应该怎么学习呢?想着类似的问题我也有过回答,并且反馈还是蛮好的,就参考之前的思路回答 ...
- DDD初学指南
去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD ...
- gulp初学
原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js 配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
随机推荐
- 反编译(javap)操作和可视化界面
1.反编译(javap)操作和可视化界面 演示:
- .NET MVC 异步提交和返回参数
一.后台页面中的接收方法和返回写法 Jsonresult意味着返回值是json格式,也可以是string或者int等其他类型. Httppost代表只接受Post方法. Mvc中返回Jsonresul ...
- virtualvm一次插件安装想到的
在麒麟操作系统visualvm安装插件失败,因为使用的内网,所以在官网下载了插件到本地:因为本地安装的jdk1.6,为了享受jdk1.8,在visualvm文件中增加了对于jdk1.8的引用: exp ...
- 第三篇 ubuntu下,mysql 的root用户密码忘了怎么办?
好长一段时间没有使用ubuntu了,今天进来玩玩,结果连mysql的root用户密码都忘记了.就上网找了一下,发现如下解决办法,试了一下,可行!记录在此,环境问题,是需要注意的. Ubuntu Ser ...
- Azure VM复制
目前Azure上复制VM可以有多种方法: 1 创建User Image,可以快速复制多台VM,但目前托管磁盘只支持Generalized的模式,需要对User和配置进行重置. 2 从VHD或托管磁盘复 ...
- laravel DB::raw() DB::RAW()的用法
laravel中的 DB::raw() 和DB::RAW()是同一种功能;用法如下 public function test() { $real = 66;]); $res = \ai\Models\ ...
- SqlServer 用户和权限操作
use [master] GO --创建用户,Test,密码Test CREATE LOGIN [TestUser] WITH PASSWORD=N'Test', DEFAULT_DATABASE=[ ...
- JSP/java 执行创建批处理文件,并执行批处理事务。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) { InputStream in = null; Inpu ...
- 蓝桥杯 算法训练 ALGO-119 寂寞的数
算法训练 寂寞的数 时间限制:1.0s 内存限制:256.0MB 问题描述 道德经曰:一生二,二生三,三生万物. 对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和.例如,d(2 ...
- C Primer Plus学习笔记(二)- 数据和C
从一个简单的程序开始 #include <stdio.h> int main(void) { float weight; float value; printf("Please ...