C++ 结合了三个编程流派:

  1. 过程式编程:C 特性,结构化语言,强调过程
  2. 面向对象编程:C++ 对于 C 语言的补充,一切皆对象,强调数据
  3. 泛型编程(generic programming):由 C++ 模板支持,强调代码与数据类型无关(type independent)。

C++ 常用标准:

  • C98
  • C03
  • C11
  • C14

C++ 程序创建的机制

  1. 使用文本编辑器编写源代码
  2. 编译源代码。编译器(compiler)会将源代码转换为平台相关的机器语言/目标代码
  3. 目标代码的链接。由于往往存在多个 C++ 库,需要链接器(linker)把这些目标代码以某种方式整合起来,最终形成可执行代码(executable code)

第一个 C++ 程序

 // myfirst.cpp -- displays a message

 #include <iostream>                           // a PREPROCESSOR directive
int main() // function header
{ // start of function body
using namespace std; // make definitions visible
cout << "Come up and C++ me some time."; // message
cout << endl; // start a new line
cout << "You won't regret it!" << endl; // more output
return ; // terminate main()
} // end of function body

编译源代码:

g++ myfirst.cpp

运行二进制文件:

./a.out

注意:

  • 避免使用 void main() 进行主函数的声明,这不是 C++ 标准格式。不同编译器有可能通过,有可能报错。
  • C++ 标准允许省略 return 0; ,如果不写编译器会自动添加。
  • iostream 称为包含文件(include file)或者头文件(head file)。iostream 提供输入输出相关的功能。
  • #include <iostream> 是一个预处理命令,本质上是把 iostream 的内容替换在这一行,接着由编译器进行编译。
  • 命名空间(namespace):多个头文件可能有相同的函数名,命令空间可以避免函数名冲突。 using namespace std; 表示使用命名空间声明为 std 的头文件,里面的函数或者变量可以直接使用。如果没有这条语句,则需要使用 std::cout 这样的形式进行调用。
  • cout 是一个对象,知道如何显示出各种各样类型的数据。<< 是一个插入运算符(insertion operator),可以将字符串插入到输出流。

大多数程序员遵循这样的 C++ 源码风格:

  1. 每行一条语句;
  2. 函数的花括号的 { 和 } 分别占一行;
  3. 函数中的语句需要缩进;
  4. 函数名与其对应的括号之间不要加空格(为了区分其他 C++ 结构)。

简单的声明语句和赋值语句

// an addition operation
#include <iostream> int main()
{
using namespace std;
int x1;
int x2;
int ans;
x1 = ;
x2 = ;
ans = x1 + x2;
cout << "x1 + x2 = " << ans << endl;
}

编译并运行后的输出:

x1 + x2 = 3

简单的输入语句

 // double your input number
#include <iostream> int main()
{
int now = ;
int birth_year;
std::cout << "What's your birth year?" << std::endl;
std::cin >> birth_year; // using cin
std::cout << "You're " << - birth_year << " years old." << std::endl;
return ;
}

编译运行后会提示输入,输入 1992,得到运算之后的输出:

What's your birth year?
1992
You're 27 years old.

使用 cmath 头文件:

 // using sqrt

 #include <iostream>
#include <cmath> int main()
{
using std::cout;
using std::cin;
using std::endl;
using std::sqrt; float num;
cout << "Give me a number: ";
cin >> num;
cout << "sqrt(" << num << ") = " << sqrt(num) << endl;
}

编译运行,输入 25 后输出:

Give me a number: 2
sqrt(2) = 1.41421

简单的自定义函数

自定义函数需要声明函数原型:

 #include <iostream>

 using namespace std;

 int add(int, int);  // function prototype

 int main()
{
int x1 = ;
int x2 = ;
int sum = add(x1, x2);
cout << "3 + 4 = " << sum << endl;
} int add(int n1, int n2)
{
return n1 + n2;
}

输出如下:

3 + 4 = 7

参考

  • 《C++ Primer Plus》by Stephen Prata

C++ 梳理:跑通简单程序的更多相关文章

  1. 踏出第一步——安装并跑通python程序

    一.首先学会安装python软件 1.在浏览器下输入安装python软件的官方网址. 点击打开链接 2.在界面上点击"Downloads"下的"Windows" ...

  2. $Eclipse+Tomcat搭建本地服务器并跑通HelloWorld程序

    本文结构:(一)环境准备(二)在Eclipse里创建Dynamic Web工程(三)写一个简单的Servlet类并配置web.xml(四)运行程序 (一)环境准备 1.Eclipse:要使用for J ...

  3. 师傅领进门之6步教你跑通一个AI程序!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 源码下载地址请点击原文查看. 初学机器学习,写篇文章mark一下,希望能为将入坑者解点惑.本文介绍一些机 ...

  4. 顶级测试框架Jest指南:跑通一个完美的程序,就是教出一群像样的学生

    facebook三大项目:yarn jest metro,有横扫宇宙之势. 而jest项目的宗旨为:减少测试一个项目所花费的时间成本和认知成本. --其实,它在让你当一个好老师. jest文档非常简略 ...

  5. 如何在Windows下用cpu模式跑通py-faster-rcnn 的demo.py

    关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:本篇blog暂时未经二次实践验证,主要以本人第一次配置过程的经验写成.计划在7月底回家去电脑城借台机子试 ...

  6. Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py

    关键字:Windows.cpu模式.Python.faster-rcnn.demo.py 声明:原文发表在博客园,未经允许不得转载!!!本篇blog过程已经多名读者实践验证,有人反馈报错TypeErr ...

  7. 简介及环境搭建跑通Hello

    简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...

  8. 如何跑通第一个 SQL 作业

    简介: 本文由阿里巴巴技术专家周凯波(宝牛)分享,主要介绍如何跑通第一个SQL. 一.SQL的基本概念 1.SQL 分类 SQL分为四类,分别是数据查询语言(DQL).数据操纵语言(DML).数据定义 ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(21)-权限管理系统-跑通整个系统

    系列目录 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,在筛选器分解路由的Action和c ...

随机推荐

  1. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用

    准备 JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JD ...

  2. idea插件篇之java内存分析工具(JProfiler)

    前言在运行java的时候有时候想测试云运行时占用内存情况,这时候就需要使用测试工具查看了.在eclipse里面有 Eclipse Memory Analyzer tool(MAT)插件可以测试,而在i ...

  3. 从GopherChina 2019看当前的go语言

    GopherChina 2019大会4月底刚刚结束,大会上使用的PPT也放了出来(大会情况及PPT在https://mp.weixin.qq.com/s/_oVpIcBMVIKVzQn6YrkAJw) ...

  4. 熟悉使用ssm框架完成项目

    羡慕那些一些博客就能写好多的人,总是能写的长篇大论的,而我就是简短的而且还伴随着语句不通顺等等,只写一点点,归根结底还是自己懒得写! 1.首先了解框架内容,拿到源码,先看配置文件 2.然后修改数据库建 ...

  5. OSG :三维无序离散点构建Delaunay三角网

    利用OSG的osgUtil库里面的DelaunayTriangulator类. points是需要构建三角网的点 osgUtil::DelaunayTriangulator* trig = new o ...

  6. Qt Quick 组件与动态对象

    博客24## 一.Components(组件) Component 是由 Qt 框架或开发者封装好的.只暴露了必要接口的 QML 类型,可以重复利用.一个 QML 组件就像一个黑盒子,它通过属性.信号 ...

  7. IDEA 2019注册码(2020年4月过期)

    IDEA 2019注册码(2020年4月过期) 812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mII ...

  8. Idea java 中导包路径分析

    工具类所在包: 查看工具类详情: 调用这个工具类时,导入的包路径为: 路径就是第1张图片中的包名utils+类名NumberUtils组成的utils.NumberUtils

  9. 关于eclipse SE版本不支持建立web工程的问题

    关于eclipse SE版本不支持建立web工程的问题 我们会发现 JAVA eclipse SE版本无法建立 Web 程序的问题...... 最好的解决方法就是下载一个myeclipse 或 Jav ...

  10. 【POI】java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上

    场景: java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上 今日份代码: 1.先是一个变量,作为文件名 private static final String ...