如何从C快速过渡到C++
1.C和C++的区别:
- C语言可以在C++编译器上完美运行,即C属于C++
- C++比C多出来一些函数库
- C++是面向对象编程(即有class以及相关工具)
2.如何从C过渡到C++
2.1 代码实例:(C语言版)uva11000.
#include<stdio.h>
int main()
{long long m = 0, fm = 1, sum = 1;int n,i;while(scanf("%d",&n),n != -1){m = 0, fm = 1, sum = 1;for(i = 0;i < n;i++){fm = m + 1;m = sum;sum = m + fm;}printf("%lld %lld\n",m,sum);}return 0;
}
重点不在于解上面这题,请将重点放在写法。以上是C语言写法,为什么说是C语言写法呢?因为上述代码有几个C独有的特点:
- 第1行:#include<stdio.h>
- 第5行:scanf("%d",&n)
- 第13行:printf("%lld %lld\n",m,sum);
这三点也是C和C++最基本的区别,下面看C++版本:
#include<iostream>
using namespace std;
int main()
{long long m = 0, fm = 1, sum = 1;int n,i;while(cin >> n,n != -1){m = 0, fm = 1, sum = 1;for(i = 0;i < n;i++){fm = m + 1;m = sum;sum = m + fm;}cout << m << " " << sum << endl;}return 0;
}
- 第1行:#include<iostream>
- 第2行:using namespace std;
- 第6行:cin >> n;
- 第14行:cout << m << " " << sum << endl;
- 其中第1行头文件iostream,和C语言中的stdio.h类似,可以对比理解。
- 第2行的using namespace std 的意思是声明使用命名空间std。可以不深入理解,只要写C++就敲这一行就可以了。(想了解的直接百度就可以,很简单)
- 第6行:cin全名叫 标准输入流。和C语言中的scanf用法类似,只是它用起来更为方便(大多数情况下),不需要区分不同的类型用不同的写法,所有类型只需要用cin >> (变量名)就可以了。
- 第14行:和cin类似,cout是标准输出流,与C中的printf类似,但是它也不用区分不同的类型用不同输出符号,不管什么类型只要用cout << (变量名) 就可以了。其中endl相当于C语言中的 ‘\n’ 换行符。
2.2 初步掌握C++:
如果你已经明白上面4个C++的特点的话,那现在你用C编写代码有多顺畅你用C++就可以同样顺畅了。因为其他写法(for、if、else……)和C完全相同。
3.如何利用C++的优点(提高):
一开始就提到,C++和C的不同在于C++丰富的函数库,其中最方便的是STL(一个库名)。很多书会讲这一个库单独拿出来讲,其中包括一些非常方便的容器(vector、map),现在看不懂也没关系,这个是需要花时间学的。从C过渡到C++只需要一个下午(C基础好),但是学会使用C++的各种函数,需要花很久。
4.推荐书籍:
个人入门用的是《C++ primer plus》第六版。这本书很厚,但是不需要看完,就像用字典一样看它就可以(用来看各种函数定义)。然后是提高,建议买一本专门讲STl的书来深入掌握STL,因为它真的很重要。
转载于:https://www.cnblogs.com/long98/p/10352237.html
如何从C快速过渡到C++相关推荐
- 从C语言快速过渡到C++
1. C++概述 1.1 C++简介 "C++"中的++来自于C语言中的递增运算符++,该运算符将变量加1.C++起初也叫"c with clsss".通过名称 ...
- vue图片动画上下跳动_Vue 解决路由过渡动画抖动问题(实例详解)
前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发 ...
- 未来的设计:我们正在进入“计算设计”时代
来源:资本实验室 摘要:随着各种新技术的引入,设计行业正在经历一场新的变革. 聚焦前沿科技创新与传统产业升级 根据施耐德电气最近的一份研究,新技术正在推动设计行业进入"计算设计"时 ...
- jquery.cycle.js
jquery.cycle.js简单用法实例 样式: a{text-decoration: none;} *{margin:0; padding:0;} /*容器设置*/ .player { width ...
- 泰语7个元音变形_大概是最全的音标总结--元音部分
[音标,收藏这篇就够了,码字不易,记得要先点赞哦-] 由于文章太长,且附有很多图片,怕大家不好加载,所以把元音和辅音分开放了 很多人在问怎么练口语,怎么说得地道,于是就去看美剧,去英语角练习,去和外教 ...
- OpenCV2:图像滤波基础
http://www.myexception.cn/image/1853919.html 一:基本概念 滤波是数字图像处理中的一个基本操作,在信号处理领域可以说无处不在.图像滤波,即在尽量保留图像细节 ...
- 华为数据之道_华为构筑产业数字化的太极之道
产业数字化正在今天经历快速变化. 自华为企业BG发布数字平台之后的7个月里,产业智能已经达成了广泛的行业共识.驱动传统经济向数字经济快速过渡被提升为国家战略,大量技术.人才.资金涌入产业数字化浪潮当中 ...
- 智能搜索推荐一体化营收增长解决方案
简介:图数据库GDB提供智能搜索推荐一站式服务,基于达摩院的智能搜索推荐算法和知识图谱技术,助力企业快速过渡冷启动过程,面向业务场景定制化方案,以提升核心业务指标,实现业务营收增长. 方案架构 方案特 ...
- angular示例_用示例解释Angular动画
angular示例 为什么要使用动画? (Why use Animations?) Modern web components frequently use animations. Cascading ...
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity
原文地址 : http://android.xsoftlab.net/training/basics/activity-lifecycle/pausing.html 在APP的正常使用过程中,在前台工 ...
最新文章
- 终于有人讲透了芯片是什么(电子行业人士必读)
- oracle数据库空间估算
- 什么是Google Play保护以及如何确保Android安全?
- R中6种读入表格数据的方式哪个最快?结果出人意料!
- magento左栏添加筛选Filtering options on Left-Navigation Menu in Products List Page
- 标榜 AI 的百度又玩区块链,跟风布局“加密猫”?
- [软件]提高日常操作电脑的效率
- 2.2 Mnist手写数据集
- Java从零开始学三十六(JAVA IO- 字符流)
- ibm澳州业务_通过集体学习使业务用户能够使用IBM Blueworks Live和IBM Industry Models进行业务建模
- python3调用企业微信api
- R语言基于ggplot绘制多条ROC曲线
- 分布式任务调度组件 Uncode-Schedule
- Deepin 深度技术 Windows XP SP2 珍藏版
- oracle EM 监控邮件提醒
- 字节跳动全链路压测(Rhino)的实践
- 分享一个简单的迭代学习机器人双臂控制(MATLAB)
- java long 0_Java中的long类型和Long类型比较大小
- 如何理解dubbox
- 微信Android客户端的卡顿监控方案
热门文章
- Deklarit3.0的确不错,推荐一下。
- 小程序开发组件的使用
- SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper
- python文件操作完成_基于python的文件操作
- 消防荷载楼板按弹性还是塑性计算_技术周刊 | 关于荷载输入若干问题的解答
- 解决嵌套块级元素垂直外边距的塌陷
- 阿里云云市场:全国快递物流查询-快递查询接口
- Shell 把日志记录按天切割到不同的文件
- Matlab系列教程_数值计算_求和(积)_求累加(积)
- 因为M.2 SSD,不得不装了WINDOWS10